Syntax
string : 찾고자 하는 대상 문자열 및 컬럼명
substring : 찾고자 하는 타겟 문자열
position : string에서 찾을 시작위치
occurrence : 찾은 문자열이 여러개일 경우 몇번째 나타나는 문자열인지
Purpose
INSTR 함수는 문자열(string)에서 지정된 문자열(substring)을 검색해서 그 위치를 리턴하는 함수입니다. 위치는 지정된 문자열이 나타나는 제일 첫번째 위치를 리턴합니다.
예를들어 'CONGRATULATIONS'라는 단어에는 'AT'라는 문자열이 두번 나타납니다(CONGRATULATIONS). 첫번째 AT와 두번째 AT를 찾는 문장은 아래와 같습니다.
첫번째 'AT' 검색 : INSTR('CONGRATULATIONS', 'AT', 1, 1)
- 'CONGRATULATIONS' 문자열에서 'AT' 문자열을 첫번째문자(C)부터 찾아서 'AT'문자열이 처음나오는 위치를 리턴하라. 첫번째 'AT'에서 'A' 의 위치는 여섯번째므로 6이 리턴.
두번째 'AT' 검색 : INSTR('CONGRATULATIONS', 'AT', 3, 2)
- 'CONGRATULATIONS' 문자열에서 'AT' 문자열을 세번째문자(N)부터 찾아서 'AT'문자열이 두번째 나오는 위치를 리턴하라. 두번째 'AT'에서 'A'의 위치는 열번째이므로 10이 리턴.
오라클 함수에서 항상 그렇듯이 position에 음수 값을 넣으면 문자열의 제일 마지막에서 음수의 절댓값만큼 왼쪽으로 이동 후 왼쪽으로 검색을 시작합니다. CONGRATULATIONS 에서 'L'문자부터 검색하고 싶다면 아래와 같이 사용하면 됩니다.
INSTR('CONGRATULATIONS', 'AT', -7, 1)
주의해야 할 점은 -7의 위치(L)을 찾은 후에는 왼쪽으로 계속 검색한다는 것입니다.
위 쿼리를 실행하면 문자 'L'부터 왼쪽으로 검색 후 처음 나오는 'AT' 중 'A'의 위치니까 6 이 리턴될 것입니다.
Examples
'IT' 카테고리의 다른 글
[오라클/함수] 개월 수 더하기 ADD_MONTHS 함수 (0) | 2016.12.16 |
---|---|
[오라클/함수] 문자열 길이 구하기 LENGTH 함수 (0) | 2016.12.15 |
[자바스크립트] serialize 한 json 객체의 내용 보기 (0) | 2016.12.14 |
[오라클/함수] ASCII 코드 값을 원할때 ASCII 함수 (0) | 2016.12.12 |
[오라클/함수] 문자열 자르기 SUBSTR 함수 (1) | 2016.12.09 |