MS-SQL SQL Server

MSSQL 재귀호출 사용법

깨노비 2020. 3. 9. 17:43
728x90
반응형

WITH 임시테이블 AS (

    실제 사용쿼리

    UNION ALL

    재귀돌릴 쿼리

        INNER JOIN 임시테이블

)

SELECT * FROM 임시테이블

 

=> 임시테이블을 다시 재귀를 돌리면서 그 임시테이블에 데이터를 계속 넣는 작업을 함

 

 

예시)

WITH TBL_TEMP (parent, code, name, level,is_view ,seq_path)
AS
(
    SELECT parent ,code, name, 1 as level,is_view ,
    CONVERT(NVARCHAR (MAX), parent) + '/' + CONVERT(NVARCHAR (MAX), sort) + '/' + CONVERT( NVARCHAR(MAX), code) seq_path
    FROM TBL_AA
    WHERE code like '%'
    UNION ALL
    SELECT E.parent, E.code , E.name,( level + 1),E.is_view,
M.seq_path + '/' + CONVERT( NVARCHAR(MAX), E.sort) + '/' + CONVERT(NVARCHAR (MAX), E.code) seq_path
    FROM TBL_AA AS E
    INNER JOIN TBL_TEMP AS M ON E.parent = M.code
)
select * from TBL_TEMP

728x90
반응형

'MS-SQL SQL Server' 카테고리의 다른 글

MSSQL 트랜잭션  (0) 2020.03.09
MSSQL Cursor 사용법  (0) 2020.03.09
MSSQL 특정문자가 포함된 프로시저 찾기  (0) 2020.03.09
MSSQL 피벗 예시  (0) 2020.03.09
MSSQL 테이블 정보 뽑아내기  (0) 2020.03.09