SQL Server 재귀적 자체 조인: 쉬운 방법
데이터베이스 관리에서 재귀적 셀프 조인은 테이블이 계층적 데이터를 순회할 수 있도록 여러 번 셀프 조인할 수 있는 기술입니다. SQL Server에서는 재귀 쿼리를 통해 이를 수행할 수 있습니다.
다음 시나리오를 고려해 보세요. 다음 열이 포함된 "Person"이라는 테이블이 있습니다.
<code>PersonID | Initials | ParentID</code>
이 테이블은 각 사람이 "이니셜" 열을 가지며 다른 사람을 참조하는 "ParentID"를 가질 수 있는 계층 구조를 나타냅니다.
"Person" 테이블에서 재귀적 셀프 조인을 수행하려면 아래와 같이 공통 테이블 표현식(CTE)을 사용할 수 있습니다.
<code class="language-sql">WITH q AS ( SELECT * FROM Person WHERE ParentID IS NULL UNION ALL SELECT m.* FROM Person m JOIN q ON m.parentID = q.PersonID ) SELECT * FROM q</code>
이 CTE에서는:
트리의 순서를 유지하기 위해 다음과 같이 재귀 쿼리에 정렬 조건을 추가할 수 있습니다.
<code class="language-sql">WITH q AS ( SELECT m.*, CAST(ROW_NUMBER() OVER (ORDER BY m.PersonId) AS VARCHAR(MAX)) COLLATE Latin1_General_BIN AS bc FROM Person m WHERE ParentID IS NULL UNION ALL SELECT m.*, q.bc + '.' + CAST(ROW_NUMBER() OVER (PARTITION BY m.ParentID ORDER BY m.PersonID) AS VARCHAR(MAX)) COLLATE Latin1_General_BIN FROM Person m JOIN q ON m.parentID = q.PersonID ) SELECT * FROM q ORDER BY bc</code>
ORDER BY 조건을 변경하여 계층 구조에서 형제 요소의 순서를 제어할 수 있습니다.
위 내용은 계층적 데이터를 탐색하기 위해 SQL Server에서 재귀적 자체 조인을 수행하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!