Sql 서버 재 귀적 조회 인 스 턴 스

841 단어 데이터 뱅 크
때로는 재 귀적 조 회 를 완성 해 야 한다.즉,데이터 베 이 스 를 계속 조회 하고 다음 조회 조건 은 이전 조회 구 조 를 사용 하여 구축 해 야 한다.이 럴 때 는 CTE 로 완성 해 야 합 니 다.
1.테스트 테이블 만 들 기:
CREATE TABLE NameList(
	[Id] [int] NOT NULL,
	[ParentId] [int] NOT NULL,
	[Name] [nvarchar](20) NULL
) ON [PRIMARY]

설명:
재 귀적 조 회 를 보 여주 기 위해 서 는 부자 표를 만들어 야 합 니 다.
id:홈 키
parentId:부모 id
이름
조회:루트 노드(부모 노드 없 음)에서 출발 하여 각 줄 의 층 수 를 표시 합 니 다.
이 조 회 는 이전 조회 결 과 를 사용 하여 조회 문 구 를 구성 하기 때문에 CTE 를 사용 하여 재 귀적 조 회 를 완성 해 야 합 니 다.
declare @id int
set @id=1;
with CTE as (
select id,name, parentid, 0 as Level
from namelist
where ParentId=@id
UNION ALL
-- Recursive 
select n.id,n.name, n.parentid, Level+1 as Level
from namelist n
join CTE on n.ParentId=cte.id
)
select * from CTE
option(MAXRECURSION 500)

상례 의 귀속 층 수 를 500 으로 설정 하 다

좋은 웹페이지 즐겨찾기