카이사르&키케로 2011. 9. 29. 15:58

-- INSTR(A,B,C,D) : A(str)에서 B(str)를 (A의) 인덱스 C(int)부터 D(int)번째 나올때 까지 찾는다

예시)
SELECT SUBSTR(MSG,1,INSTR(MSG,'|',1,1)-1) MSG_1,
SUBSTR(MSG, INSTR(MSG,'|',1,1)+1, INSTR(MSG,'|',1,2)-INSTR(MSG,'|',1,1)-1)MSG_2,
SUBSTR(MSG, INSTR(MSG,'|',1,2)+1, INSTR(MSG,'|',1,3)-INSTR(MSG,'|',1,2)-1)MSG_3,
SUBSTR(MSG, INSTR(MSG,'|',1,3)+1, INSTR(MSG,'|',1,4)-INSTR(MSG,'|',1,3)-1)MSG_4,
SUBSTR(MSG, INSTR(MSG,'|',1,4)+1) MSG5
,INSTR(MSG,'|',1,4)
FROM
(SELECT '111|222|333|444|555' MSG FROM DUAL);

-- 자주 쓰이지는 않지만 가끔 필요한 쿼리이며 분석등을 위해서 알아두면 편리한 Function 이라고 생각됨