본문 바로가기
이카루스의 날개/DB

관련번호 리스트(START WITH 사용)

by 윙혼 2007. 6. 7.

출처 : http://blog.naver.com/armjari?Redirect=Log&logNo=38353550

SQL SKILL 하나 알려드리겠습니다.

아주 유용한 팁(사용빈도는 높지 않음)을 하나 알려드리겠습니다.

어떤 번호에 관련된 번호를 1 Line으로 보여주고 싶을 때 사용할 수 있는 방법입니다.


화면조회할 때 또는 보고서로 출력할 때 유용할 것 같은데요.. 보통은 SELECT를 먼저 날리고 결과 리스트를 가져온 후 반복하면서 1, 2, 3, 4, ... 이렇게 찍어야  할텐데요

아래의 SQL을 사용하면 DB단에서 바로 1 Line으로 조회 할 수 있네요.

ORACLE에서 아주 유용한 구문 하나 만들어놨네요..

근데 궁금한게 SQL Server나 ASIQ, Terra DB등은 언제 이런 기능 구현하나요??


SELECT SUBSTR ( MAX (SYS_CONNECT_BY_PATH (rel_no, ',') ), 2) rel_lis
FROM   ( SELECT rel_no       ,
                           ROW_NUMBER () OVER (PARTITION BY no ORDER BY rel_no) rnum
              FROM   Table

              WHERE  no = '20060770000001')
START WITH rnum = 1
CONNECT BY PRIOR rnum = rnum - 1
GROUP BY no

댓글