CONNECT BY LEVEL 활용문의 1 2 1,239

by 임문자 [CUBRID] [2021.05.06 11:24:57]


 

피아노, 바이올린, 기타를 세로로 뽑아 보려고 아래 구문 처럼 해봤는데... 

(SELECT LEVEL lv FROM DB_ROOT CONNECT BY LEVEL <= 9) lv 이부분이... 조금 조언 부탁드리겠습니다~

SELECT 
    SUBSTR('피아노, 바이올린, 기타' , INSTR(','||'피아노, 바이올린, 기타' ,',',1), INSTR('피아노, 바이올린, 기타' ||',',',',1)- INSTR(','||'피아노, 바이올린, 기타' ,',',1)) li,
    (SELECT LEVEL lv FROM DB_ROOT CONNECT BY LEVEL <= 9) lv
FROM 
    DB_ROOT
WHERE lv <= LENGTH(TRANSLATE(','||'피아노, 바이올린, 기타',','||'피아노, 바이올린, 기타',','))
ORDER BY li, lv;

CLM
피아노, 바이올린, 기타

아래 처럼 데이터를 출력하고자 합니다.

CLM
피아노
바이올린
기타

 

 

by 마농 [2021.05.06 11:49:46]
-- CUBRID --
SELECT v
     , lv
     , LTRIM(SUBSTRING_INDEX(SUBSTRING_INDEX(v, ',', lv), ',', -1)) x
  FROM (SELECT '피아노, 바이올린, 기타' v FROM db_root) a
     , (SELECT LEVEL lv FROM db_root CONNECT BY LEVEL <= 9) b
 WHERE lv <= LENGTH(v) - LENGTH(REPLACE(v, ',')) + 1
;
-- http://www.gurubee.net/article/55635

 


by 임문자 [2021.05.06 12:58:48]

너무 감사해요~ ㅜㅠ 

참고 좌표도 알려주시고 열심히 할게요~~~ ㅠ0ㅜ

감사합니다~~

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입