코딩 개발/ORACLE

[Oracle] INSTR 함수 (In String)

호소세 2023. 9. 24. 20:59
728x90
반응형

문자열에서 원하는 문자를 찾을 때 INSTR 함수를 사용합니다.

INSTR 함수는 대소문자를 구별하여 문자를 검색합니다.

또한 문장에 앞에서부터 검색하거나 뒤에서부터 검색할 수 있습니다. 

INSTR ([검색할 문자열],[찾을 단어],[찾기 시작할 위치(숫자)],[찾은 결과의 순번])

기본 사용법

SELECT INSTR('Apple Mango Apple', 'Apple') AS result1
     , INSTR('Apple Mango Apple', 'Mango')   AS result2
  FROM dual

1번의 결과는 당연히 처음에 있으니 1이 나오고

2번의 결과는 7번째 글자인 망고니까 7이 나오게 됩니다.

 

검색 위치 및 순서 변경

SELECT INSTR('Apple Mango Apple', 'Apple',1) AS result1
     , INSTR('Apple Mango Apple', 'Apple',2)   AS result2
     , INSTR('Apple Mango Apple', 'Apple',-1)   AS result2
  FROM dual

1번 결과는 첫 번째 글자부터 찾으라고 했으니 1이 나오게 되고,

2번 결과는 두 번째 글자부터 찾으라고 했으니 13번째 Apple을 찾고

3번 결과는 뒤에서부터 글자를 찾으라고 했으니 13번째 Apple을 찾습니다.

 

검색 결과 순서

SELECT INSTR('Apple Mango Apple', 'Apple',1) AS result1
     , INSTR('Apple Mango Apple', 'Apple',1,2)   AS result2
  FROM dual

1번 결과는 첫 번째 글자부터 검색해서 제일 앞에 있는 Apple을 찾기 때문에 1이라는 결과가 나오고

2번 결과는 첫 번째 글자부터 검색하지만 2번째 Apple을 찾는 것이기 때문에 13이라는 결과가 나옵니다.

 

대소문자 구분 없이 검색

SELECT INSTR('Apple Mango Apple', 'Apple') AS result1
     , INSTR(UPPER('Apple Mango Apple'), 'APPLE')   AS result2
     , INSTR(LOWER('Apple Mango Apple'), 'mango')   AS result3
  FROM dual

1번 결과는 이제는 다들 유추할 수 있을 것이고,

2번 결과는 앞에 검색하는 문장 전체를 대문자로 만들어서 편하게 대소문자 구분 없이 찾는 것이고,

3번 결과 또한 소문자로 만들어서 대소문자 구분없이 찾는 것입니다.

 

하지만 검색어를 작성할 때 대문자나 소문자로만 작성해야합니다.(주의)

 

소감

ORACLE 명령어에 신기한 것들이 정말 많더라고요. 처음 배웠을 때는 JOIN, SubQuery, GROUP BY 등등 신기하다고 생각했는데 제가 모르는 게 99%는 되는 것 같습니다.

오늘 배운 문장 내 검색이나 함수 만들기 등등이 많더라고요. 역시 초보 개발자가 아는 것은 빙산의 일각일 뿐이란 것을 새삼 느꼈답니다.


출처 : https://gent.tistory.com/22

반응형