더북(TheBook)

이 중에서 LENGTHINSTR 함수를 많이 사용합니다. INSTR 함수 사용법이 복잡해 보이는데 예제를 통해 살펴보죠.

쿼리 6-4 INSTR 함수

SELECT INSTR( 'ABABAB', 'A' )       first
      ,INSTR( 'ABABAB', 'A', 2 )    second
      ,INSTR( 'ABABAB', 'A', 2, 1 ) third
      ,INSTR( 'ABABAB', 'A', 2, 2 ) fourth
  FROM DUAL ;

 

▲ 그림 6-4 쿼리 6-4를 실행한 결과

 

어떻게 이런 결과가 나왔는지 알아봅시다.

INSTR( 'ABABAB', 'A' ): n1, n2가 생략됐으니 각각 1이 적용되어 첫 번째 문자열에서 ‘A’를 처음 만나는 위치인 1을 반환

INSTR( 'ABABAB', 'A', 2 ): n1은 2이고 n2가 생략되어 1이 적용되므로 첫 번째 문자열의 두 번째 문자(n1이 2)인 ‘B’에서 시작해 ‘A’를 만나는 첫 번째 위치(n2가 1)인 3을 반환

INSTR( 'ABABAB', 'A', 2, 1 ): n1이 2이므로 두 번째 문자(n1이 2)인 ‘B’에서 시작해 ‘A’를 만나는 첫 번째 위치(n2가 1)인 3을 반환

INSTR( 'ABABAB', 'A', 2, 2 ): n1이 2이므로 두 번째 문자(n1이 2)인 ‘B’에서 시작해 ‘A’를 만나는 두 번째 위치(n2가 2)인 5를 반환

INSTR 함수 사용법이 조금 복잡한데 실제로는 n1, n2를 생략해 쓰는 경우가 많습니다. 생략한 경우 매개변수의 첫 번째 문자열에서 두 번째 매개변수 문자가 있는 첫 번째 위치 값을 반환합니다. 만약 원하는 문자열을 찾지 못하면 INSTR 함수는 0을 반환합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.