본문 바로가기

Database

[Oracle] 문자열 속 문자 위치 찾기 - INSTR 함수 / 문자열 자르기 - SUBSTR 함수

(1) INSTR 함수 - 문자 위치 찾아줌 (INDEX를 반환)

* ORACLE에서 INSTR함수 사용할 때, 문자열 위치는 1부터 시작 

 

INSTR ( string, substring, position, occurrence )

INSTR ( 찾고자 하는 대상 문자열 및 컬럼명, 찾고자 하는 타겟 문자열, string에서 찾을 시작위치, 찾은 문자열이 여러개일 경우 몇번째 나타나는 문자열인지 )

 

 

예를들어, 'CONGRATULATIONS'라는 단어에는 'AT라는 문자열이 두번 나타난다.

1번째 발생하는 'AT'를 찾고싶을 때

SELECT INSTR('CONGRATULATIONS', 'AT', 1, 1) 
FROM DUAL;

결과

6

 

 

 

2번째 발생하는 'AT'를 찾고싶을 때

SELECT INSTR('CONGRATULATIONS', 'AT', 1, 2) 
FROM DUAL;

결과

10

 

 

 

뒤에서부터 1번째 발생하는 'AT'를 찾고싶을 때

SELECT INSTR('CONGRATULATIONS', 'AT', -1, 1) 
FROM DUAL;

결과

10

 

 

 

(2) SUBSTR 함수 - 문자열을 원하는 대로 잘라줌

* SUBSTR함수는 문자열 시작위치가 0으로하든 1로하든 똑같이 인식 (INSTR 함수는 위에서 말했듯이 1부터 시작해야 됨)

SUBSTR(문자열, 시작위치, 길이)

SELECT SUBSTR('CONGRATULATIONS', 1,3) 
FROM DUAL;

결과 - CON

 

 

SELECT SUBSTR('CONGRATULATIONS', 2,5) 
FROM DUAL;

결과 - ONGRA