코딩 개발/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%는 되는 것 같습니다.
오늘 배운 문장 내 검색이나 함수 만들기 등등이 많더라고요. 역시 초보 개발자가 아는 것은 빙산의 일각일 뿐이란 것을 새삼 느꼈답니다.
반응형