by 띠엉이 [SQL Query] 쿼리 [2014.05.13 14:04:38]
AAA_BBB_CCC_DDD 를
AAA BBB CCC DDD
로 표현하려면 어떻게 해야 될까요 ㅠㅠ
한컬럼의 데이터를
세로행으로 나타내는 방법을 문의드립니다.
http://www.gurubee.net/article/55635
스트링으로 조건절을 구분자로 해서 넘어올때 제가 자주 쓰는 쿼리인데 방법은 많은데 이게 젤 짧게 해결할 수 있는 방법인거 같습니다.
SELECT REGEXP_SUBSTR(:pString,'[^_]+',1,LEVEL) FROM DUAL CONNECT BY REGEXP_SUBSTR(:pString,'[^_]+',1,LEVEL) IS NOT NULL
좀더 간결하게... - 변경전 : CONNECT BY REGEXP_SUBSTR(:pString,'[^_]+',1,LEVEL) IS NOT NULL - 변경후 : CONNECT BY LEVEL <= REGEXP_COUNT(:pString, '_') + 1
당황하지 않고 정규식을 이용하여 가장 짧게 해결할 수 있는 방법으로 'CONNECT BY REGEXP_SUBSTR(:pString,'[^_]+',1,LEVEL) IS NOT NULL' 끝.... 했는데
막고 빡!!! 하는 느낌이 드네요. ㅋㅋ