오라클 SQL 문
select *
from TEST.MENU A
START WITH A.UP_MENU_NO = '1'
CONNECT BY PRIOR A.MENU_NO = A.UP_MENU_NO
ORDER SIBLINGS BY A.SORT_NO
=========================================================================>
위의 오라클 sql 문을 ms-sql 문으로 변환
MS-SQL 문
;WITH CTE (UP_MENU_NO, MENU_NO, MENU_LEVEL , MENU_NAME, SORT ) AS (
SELECT
UP_MENU_NO AS UP_MENU_NO
, '0' AS MENU_NO
, MENU_LEVEL
, MENU_NAME
, convert(varchar(255), right(N'00'+rtrim(SORT_NO),3) ) AS SORT // 1을 001 형태의 3자리 로 바꾸준다.
FROM MENU
WHERE UP_MENU_NO = '1'
UNION ALL
SELECT
B.UP_MENU_NO AS UP_MENU_NO
, B.MENU_NO AS MENU_NO
, C.MENU_LEVEL + 1 AS MENU_LEVEL
, B.MENU_NAME
, convert(varchar(255), convert(nvarchar,C.SORT) + '|' + right(N'00'+rtrim(B.SORT_NO),3) ) AS SORT
FROM MENU B
INNER JOIN CTE C ON B.UP_MENU_NO = C.MENU_NO
)
SELECT * FROM CTE order by SORT
'Database > MS-SQL' 카테고리의 다른 글
[MS-SQL] 테이블 lock deadlock 교착상태 (0) | 2013.09.05 |
---|---|
[MS-SQL] row number 사용 (0) | 2013.08.30 |
[MS-SQL] 사용자 정의 함수 Function 만들기 (1) | 2013.08.06 |
[MS-SQL] Underlying input stream returned zero bytes (0) | 2013.06.14 |
[MS-SQL] 잠금 요청 제한 시간이 초과되었습니다. (0) | 2013.06.05 |