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
반응형