본문 바로가기
DBMS/ORACLE

[ORACLE] 오라클_문자함수( INSTR : 문자열에서 문자 위치 찾기 )

by 썸머워즈 2019. 2. 14.
반응형

 

INSTR

  • INSTR(문자열, 검색할 문자, 시작지점, n번째 검색단어) 함수는 찾는 문자의 위치를 반환한다.
  • 찾는 문자가 없으면 0을 반환한다.
  • 찾는 단어 앞글자의 인덱스를 반환한다.
  • 기본으로 왼쪽부터 시작하여 우측방향으로 스캔한다.
  • 시작지점에 음수를 쓸 경우 우측에서 시작하기 때문에 스캔반향이 좌측방향이다.

사용 방법에 대해 알아보자.

-- 1) 찾는 단어가 없기에 0을 반환
SELECT INSTR('CORPORATE FLOOR','OK') AS idx FROM DUAL; -- 0
 
-- 단어의 앞글자 인덱스를 반환
 
-- 2) PO 단어를 찾아라
SELECT INSTR('CORPORATE FLOOR','PO') AS idx FROM DUAL; -- 4 
 
-- 3) 6번째 부터 시작해서 해당 단어 OR 위치를 찾아라
SELECT INSTR('CORPORATE FLOOR','OR',6) AS idx FROM DUAL; -- 14
 
-- 4) 2번째 부터 시작해서 나오는 값중에 2번째 값의 위치를 찾아라
SELECT INSTR('CORPORATE FLOOR','OR',2,2) AS idx FROM DUAL; -- 5
 
-- 5) 우측에서 3번째 위치부터 시작해서 왼쪽방향으로 검색하고 2번째 나오는 값의 위치를 찾아라
SELECT INSTR('CORPORATE FLOOR','OR',-3,2) AS idx FROM DUAL; -- 2

위 사용방법에 대해 하나하나 설명하자면 다음과 같다. (번호 순서대로)

1번주석 그대로 찾는 단어가 없으면 0을 반환한다.

2번시작지점과 몇번째 검색단어를 찾을지는 생략이 가능하나 그럴경우 처음부터 스캔해서 첫번째 값의 위치를 반환한다.

3번 시작지점을 입력할경우 그 위치부터 우측으로 스캔해서 나오는 값의 위치를 반환한다.

4번 2번째부터 시작해서 2번째 나오는 값은 (C)ORPOR 이므로 두번째 OR의 인덱스를 반환한다.

5번음수를 사용했기 때문에 우측기준 3번째 위치부터 시작좌측방향으로 스캔해서 나오는 두번째 OR 값의 인덱스인 2를 반환하는 것이다.

 

반응형


댓글

TOP