오라클(IT)/쿼리

[Oracle]오라클 INSTR 함수 사용방법 정리

흔한이대리 2023. 6. 21. 23:38
반응형

오라클 INSTR함수 사용 방법입니다.

 

INSTR함수는 문자열에서 원하는 문자를 찾을 때 사용하며, 뒤에서부터(문자의 마지막에서 역으로) 검색도 가능합니다.

또한 INSRT함수는 대,소문자를 구분하고, 띄어쓰기도 하나의 문자로 인식합니다.

문법

 

1. INSTR('문자열' , '찾는문자값')

2. INSTR('문자열' , '찾는문자값' , '찾기 시작하는 위치')

3. INSTR('문자열' , '찾는문자값' , '찾기 시작하는 위치' , '찾는 결과의 순번')

 

.하나씩 살펴볼께요!

 

1. INSTR('문자열' , '찾는문자값')

SELECT INSTR('Assistant_Manager_Lee', 'an') FROM DUAL

'Assistant_Manager_Lee' 라는 문자열에서 'an' 을 찾는 쿼리입니다.

위 문자열에서 an는 7번 째에 위치하므로, 7을 리턴합니다.

 

 

SELECT INSTR('Assistant_Manager_Lee', 'HI') FROM DUAL

'Assistant_Manager_Lee' 라는 문자열에서 'HI' 를 찾는 쿼리입니다.

위 문자열에서 HI는 존재하지 않기 때문에 0을 리턴합니다.

 

2. INSTR('문자열' , '찾는문자값' , '찾기 시작하는 위치')

SELECT INSTR('Assistant_Manager_Lee', 'an', -1) FROM DUAL

'Assistant_Manager_Lee' 라는 문자열 중 -1의 위치에서 'an' 을 찾는 쿼리입니다.

마이너스(-)가 들어가게 될 경우 뒤에서 부터 확인한다는 뜻입니다.

위 문자열에서 an은 'Assistant Manager Lee' 총 2곳에 위치하는데, 찾기 시작하는 위치가 뒤에서부터 입니다.

즉, 'Assistant Manager Lee' 중 앞이 아닌 뒤에 있는 Manager의 'an'을 인식하게 됩니다.

 

위 문자열에서는 12번 째에 위치하므로, 12를 리턴합니다.

(뒤에서부터 해당 위치까지의 수가 아니라 처음부터 해당 위치의 수를 리턴합니다.)

 

 

SELECT INSTR('Assistant Manager Lee', 'an', 8) FROM DUAL

'Assistant Manager Lee' 이라는 문자열 중 8번 째 위치부터 'an' 를 찾는 쿼리입니다.

위 문자열에서 an'Assistant Manager Lee' 총 2곳에 위치하는데, 찾기 시작하는 위치가 8번째 위치에서 입니다.

'Assistant' 의 8번째 위치인 n에서 찾기시작해서 앞의 an을 확인하지 못하고 뒤쪽의 'Manager'을 찾게 됩니다.

 

해당 위치는 12번 째에 위치하므로, 12를 리턴합니다.

(8번째에서 해당 위치까지의 수가 아니라 처음부터 해당 위치의 수를 리턴합니다.)

 

3. INSTR('문자열' , '찾는문자값' , '찾기 시작하는 위치' , '찾는 결과의 순번')

SELECT INSTR('Assistant_Manager_Lee', 'an', 1, 2) FROM DUAL

'Assistant_Manager_Lee' 라는 문자열 중 1번 째의 위치에서 2번째 'an' 을 찾는 쿼리입니다.

'Assistant' 에서 'an'을 찾았지만, 2번째 an을 찾기 때문에, 'Manager''an'을 인식하게 됩니다.

 

위 문자열에서는 12번 째에 위치하므로, 12를 리턴합니다.

 

 

SELECT INSTR('Assistant_Manager_Lee', 'an', -1, 2) FROM DUAL

'Assistant_Manager_Lee' 라는 문자열 중 -1번 째의 위치에서 2번째 'an' 을 찾는 쿼리입니다.

-1이 들어가서 뒤에서부터 찾기 시작해서, 'Manager'의 'an'을 먼저 인식하지만,

 2번째 an을 찾기 때문에,'Assistant'의 'an'을 인식하게 됩니다.

 

위 문자열에서는 8번 째에 위치하므로, 8를 리턴합니다.

 

 

반응형