0
를 사용하여 일치하는 자식 기록을 찾을 수 없습니다 나는 다음과 같은 테이블 @t이 : 나는 ParentId = P1, 원하는 출력은 X3재귀 CTE
을 전달하는 경우
ParentId SkuName ChildId
P1 X1 C1
C1 X2 C2
C2 X3 C2
가 정지 상태 인 즉 마지막 행과 일치하는 레코드 및 그 sku 이름을 얻으십시오
행. 어떤 행이 일치하지 않으면,
DECLARE @t TABLE (ParentId Varchar(100), Name VARCHAR(20), ChildId Varchar(100))
INSERT INTO @t(ParentId, Name, ChildId)
SELECT 'P1', 'X1', 'C1' UNION ALL
SELECT 'C1', 'X2', 'C2' UNION ALL
SELECT 'C2', 'X3', 'C2'
Declare @ParentId Varchar(10) = 'P1'
;With CTE As
(
Select
Rn = ROW_NUMBER() Over(Order By (Select 1))
,ParentId
, Name
, ChildId
From @t Where ParentId = @ParentId
Union All
Select
Rn + 1
,pc.ParentId as Parents
,pc.Name
,pc.ChildId
FROM @t pc
JOIN CTE gp on pc.Childid = gp.Parentid
)
Select *
From CTE