1
다음과 같이 일부 레벨 (최대 5 레벨)의 테이블이 있습니다. 어떤 id를 얻고 항목과 그 자식을 반환하는 프로 시저를 만들고 싶습니다 ... 어떻게 처리 해야할지 전혀 모르겠습니다! 는 테이블에 존재하지 않는 당신은 REFID 한SQL에서 재귀 테이블의 하위 항목 가져 오기
다음과 같이 일부 레벨 (최대 5 레벨)의 테이블이 있습니다. 어떤 id를 얻고 항목과 그 자식을 반환하는 프로 시저를 만들고 싶습니다 ... 어떻게 처리 해야할지 전혀 모르겠습니다! 는 테이블에 존재하지 않는 당신은 REFID 한SQL에서 재귀 테이블의 하위 항목 가져 오기
DECLARE @Table TABLE(
ID INT,
ParentID INT,
NAME VARCHAR(20)
)
INSERT INTO @Table (ID,ParentID,[NAME]) SELECT 1, NULL, 'A'
INSERT INTO @Table (ID,ParentID,[NAME]) SELECT 2, 1, 'B-1'
INSERT INTO @Table (ID,ParentID,[NAME]) SELECT 3, 1, 'B-2'
INSERT INTO @Table (ID,ParentID,[NAME]) SELECT 4, 2, 'C-1'
INSERT INTO @Table (ID,ParentID,[NAME]) SELECT 5, 2, 'C-2'
DECLARE @ID INT
SELECT @ID = 2
;WITH ret AS(
SELECT *
FROM @Table
WHERE ID = @ID
UNION ALL
SELECT t.*
FROM @Table t INNER JOIN
ret r ON t.ParentID = r.ID
)
SELECT *
FROM ret
(REFID 1 일 때, 그것은 노드가 첫 번째 수준의 부모 인 것을 의미한다). –
@HamletHakobyan 죄송합니다. 언급하지 않았습니다. 나는 그 질문을 갱신했다. –
[T-SQL 쿼리 : 부모의 자식 노드 가져 오기] (http://stackoverflow.com/questions/3601900/t-sql-query-getting-child-nodes-of-a-parent) 또는 [How to get 모든 자식 ID] (http://stackoverflow.com/questions/11435788/how-to-get-all-the-child-ids) – bummi