1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | -- 1. 어차피 a 는 고정 자리수일텐데 Instr 은 뭐하러 하나요? -- 2. Why Reverse? -- 3. 정규식 패턴 사용이 적절하지 않고요... WITH t AS ( SELECT 'HT1816112121400121;로스엔젤레스;부산광역시 강서구 대저1동 4302-22' bigo FROM dual UNION ALL SELECT 'HT7014021412091123;대한민국;부산광역시 강서구 대저1동 4302-22' FROM dual UNION ALL SELECT 'HT1611221911240214;오스트레일리아;부산광역시 강서구 대저1동 4302-22' FROM dual ) SELECT bigo -- 1. a 가 자리수 고정인 경우 , SUBSTR(bigo, 1, 18) a1 , SUBSTR(bigo, 20, INSTR(bigo, ';' , 1, 2)-20) b1 , SUBSTR(bigo, INSTR(bigo, ';' , 1, 2)+1) c1 -- 2. 자리수와 상관 없이 , SUBSTR(bigo, 1, INSTR(bigo, ';' )-1) a2 , SUBSTR(bigo, INSTR(bigo, ';' )+1, INSTR(bigo, ';' , -1)-INSTR(bigo, ';' )-1) b2 , SUBSTR(bigo, INSTR(bigo, ';' , -1)+1) c2 -- 3. 정규식 이용 , REGEXP_SUBSTR(bigo, '[^;]+' , 1, 1) a3 , REGEXP_SUBSTR(bigo, '[^;]+' , 1, 2) b3 , REGEXP_SUBSTR(bigo, '[^;]+' , 1, 3) c3 FROM t ; |