본문 바로가기
DataBase

[Oracle]다양한 함수2-문자열 연결하기 CONCAT, 문자열 추출하기 SUBSTR

by 바까 2020. 4. 12.
반응형

문자 값 연결하기 : CONCAT

 

CONCAT 함수는 문자열을 결합하는 함수이다. CONCATENATION의 약자이며 '연쇄,연속'이라는 뜻을 가지고 있다.

SELECT 'Oracle', 'mania'
FROM dual;

결과

각각 떨어져서 문자열이 결과값으로 보여지지만 CONCAT함수를 사용하면 문자열이 결합된다.

SELECT 'Oracle', 'mania', CONCAT('Oracle','mania')
FROM dual;

결과

 


문자열 추출하기 : SUBSTR

 

SUBSTR은 기존 문자열에서 일부만을 추출한다. substring의 약자로 말그대로 string을 뺀다는 뜻.

문자열의 시작 위치부터 개수만큼 문자를 얻어온다.

SUBSTR(대상, 시작위치, 추출할 개수)

 

예1)문자열의 일부만 추출하기

--문자열의 일부만 추출하기
SELECT SUBSTR('ORACLE MANIA',4,5) 
FROM dual;

*공백도 1BTYE 취급한다.

결과

4번째 문자인 C부터 공백포함 5개의 글자가 추출되었다.

만일, 뒷자리부터 글자 순서를 세고 싶다면 음수를 사용하면된다.

SELECT SUBSTR('ORACLE MANIA',-4,3) 
FROM dual;

결과

뒷자리부터 4번째에 있는 A부터 3개의 글자가 추출되었다.

 

예2) SUBSTR 함수 이용해서 문자열찾아내기 

SUBSTR 함수의 활용방법은 다양하다. 만약 이름이 N으로 끝나는 사람을 찾고싶다면

SELECT *
FROM employee
WHERE SUBSTR(ename, -1, 1) = 'N'; 

문자열 끝에서 첫번째만을 추출하여 'N'과 비교하면 된다.


문자열 추출하기 : SUBSTRB

SUBSTRB는 한글을 2BYTE 취급하며 문자를 잘라 추출한다.

 

영문일 경우

SELECT SUBSTR('Oracle mania',4,3), SUBSTRB('Oracle mania',4,3)
FROM dual;

결과

SUBSTR과 SUBSTRB 둘다 영문을 1BYTE 취급하여 똑같은 결과를 나타낸다.

 

한글일 경우

SELECT  SUBSTR('오라클매니아',3,4), SUBSTRB('오라클매니아',3,4)
FROM dual;

결과

SUBSTRB는 한글을 2BYTE 취급하기 때문에 

'라클'이라는 결과 값을 나타낸다.

*

한글 결과값은 헷갈릴 수 있는데 표로 보면 이해가 쉬워진다.

1 2 3 4 5 6 7 8 9 10 11 12

 3번째에 있는 글자가 '라'이고 3번째부터 4를 세어보면 '클'까지만 추출하는 것이다.


반응형

댓글