NULL

대소문자 바꿔주는 문자 함수 (UPPER, LOWER, INITCAP) 본문

SQL/Oracle

대소문자 바꿔주는 문자 함수 (UPPER, LOWER, INITCAP)

1924 2022. 3. 16. 12:50

문자 힘수는 문자 데이터를 가공하거나 문자 데이터로부터

특정 결과를 얻기위해 사용하는 함수이다.

 

실무에서 자주 사용하는 데이터는 숫자, 문자, 날짜 데이터이다.

 

 

함수 설명
UPPER(문자열) 괄호 안 문자 데이터를 모두 대문자로 변환하여 반환
LOWER(문자열) 괄호 안 문자 데이터를 모두 소문자로 변환하여 변환
INITCAP(문자열) 괄호 안 문자 데이터 중 첫 글자는 대문자로, 나머지 문자를 소문자로 변환 후 반환

 

 

실습을 통해 알아보도록 하겠다.

 

UPPER, LOWER, INITCAP 함수 사용

 

UPPER, LOWER, INITCAP 함수를 사용하려면

입력데이터에 열이름이나 데이터를 직접 지정해야한다.

 

사용목적

WHERE절을 다룰 때 SQL문 대소문자 상관없이 사용가능하지만

문자열 데이터는 대소문자를 구별하기때문에 사용에 주의가 필요하다.

 

예를 들면 게시판의 글 제목이나 글 본문과 같은 가변 길이

문자열 데이터에서 특정 문자열을 포함하는 데이터를 조회하는 경우를 보면

 

즉 제목이나 본문에 'Oracle' 문자열이 포함된 데이터를 검색하는 기능을 구현할 때

다음과 같이 LIKE 연산자를 와일드 카드와 함께 사용할 수 있다.

 

SELECT *
	FROM 게시판 테이블
	WHERE 게시판 제목 열 LIKE '%Oracle%'
	OR 게시판 본문 열 LIKE '%Oracle%'

 

LIKE 연산자를 사용하여 문자열 데이터의 패턴을 %Oracle%로 지정했기에

'Oracle' 문자열이 포함된 데이터가 모두 출력된다.

 

하지만 이 조건식에서 사용하는 문자열 데이터패턴은

ORACLE, oracle, OrAcLe과 같이 대소문자가 다른 여러 가지 경우의

'Oracle' 단어를 찾아내지 못한다.

 

이때 해결방법은 조건식 양쪽의 문자열데이터를 모두 대문자나 소문자로 바꿔서

비교한다면 실제 검색어의 대소문자 여부와 상관없이 검색 단어와 일치한

문자열을 포함한 데이터를 찾을 수 있다.

 

예를 들어  EMP 테이블에서 사원이름이 대소문자 상관없이 scott인 사람을

찾으려면 다음과 같이 문자 함수를 사용하면 된다.

 

 

UPPER 함수로 문자열 비교하기 (사원 이름이 KING인 데이터 찾기)

 

UPPER 함수로 문자열 비교하기 (사원 이름에 SCOTT 단어를 포함한 데이터 찾기)

 

위와 같이 찾으려는 문자열 데이터는 king으로 명시했지만

양쪽 항목을 모두 UPPER 함수를 통해 대문자로 변환 후

비교하기 때문에 대소문자 상관없이 KING데이터가 출력된다.

'SQL > Oracle' 카테고리의 다른 글

문자열 길이 구하는 LENGTH 함수  (0) 2022.03.16
집합 연산자 (UNION, UNION ALL, MINUS, INTERSECT)  (0) 2022.03.16
IS NULL연산자  (0) 2022.03.15
LIKE 연산자와 와일드 카드 ESCAPE절  (0) 2022.03.09
BETWEEN 연산자  (0) 2022.03.09
Comments