문제> 아래와 같이 "|" 표시가 들어간 데이터가 있다.
이 데이터를 "|" 를 기준으로 행으로 데이터를 나타내고자 한다.
with tmp as (
select 'aa|bbb|cccc' str from dual
union all select 'dddd|eeeee|ff|ggg' from dual
)
select * from tmp;
결과는 아래와 같다.
아래와 같이 결과가 나오도록 해보자.
정답 트리플클릭 >
SELECT REGEXP_SUBSTR(str,'[^|]+',1,LEVEL) str
FROM (select rownum SEQ, str from tmp)
CONNECT BY CONNECT_BY_ROOT SEQ = SEQ
and LEVEL <= LENGTH(str) - LENGTH(REPLACE(str,'|')) + 1;
'Oracle > SQL Question' 카테고리의 다른 글
[퀴즈] 조건부 누적쿼리 퀴즈 (0) | 2015.09.14 |
---|---|
[퀴즈] 사과 나눠주기 퀴즈 (0) | 2015.09.14 |
[퀴즈] LEAD,LAG 함수 응용 퀴즈 (0) | 2015.09.14 |
[퀴즈] 집약함수 (0) | 2015.09.14 |
[퀴즈] 100~200 숫자중 짝수만 뽑아내기 (0) | 2015.09.14 |