[SQL] SQL Server의 조항에 해당하여 ORACLE 연결
SQLSQL Server의 조항에 해당하여 ORACLE 연결
SQL 서버에서 오라클의 CONNECT BY에 해당하는 조항이있다. 요구 사항은 parentId 필드를 사용하여 카테고리 트리를 빌드합니다.
해결법
-
==============================
1.오라클의 CONNECT BY 계층 적 쿼리 구문의 SQL 서버 2005 + 상응하는 재귀 CTE를 사용합니다. SQL 서버 2008 HIERARCHYID를 추가했다. 여기에 재귀 CTE의 예입니다 :
오라클의 CONNECT BY 계층 적 쿼리 구문의 SQL 서버 2005 + 상응하는 재귀 CTE를 사용합니다. SQL 서버 2008 HIERARCHYID를 추가했다. 여기에 재귀 CTE의 예입니다 :
WITH EmployeeHierarchy (EmployeeID, LastName, FirstName, ReportsTo, HierarchyLevel) AS ( SELECT EmployeeID, LastName, FirstName, ReportsTo, 1 as HierarchyLevel FROM Employees WHERE ReportsTo IS NULL UNION ALL -- Recursive step SELECT e.EmployeeID, e.LastName, e.FirstName, e.ReportsTo, eh.HierarchyLevel + 1 AS HierarchyLevel FROM Employees e JOIN EmployeeHierarchy eh ON e.ReportsTo = eh.EmployeeID) SELECT * FROM EmployeeHierarchy ORDER BY HierarchyLevel, LastName, FirstName
"계층 적 CTE"및 / 또는 "재귀 CTE를"인터넷 검색 많은 결과를집니다. 나는 4GuysFromRolla.com에서 예를 질의했다.
재귀 CTE는 이제 ANSI 표준입니다 - 내가 이해 구문은 오라클 11g까지 지원되지 않습니다.
-
==============================
2.여러분의 인생을 더 쉽게 만들 수 있습니다 MS SQL Server 2008의 HIERARCHYID 데이터 유형이있다.
여러분의 인생을 더 쉽게 만들 수 있습니다 MS SQL Server 2008의 HIERARCHYID 데이터 유형이있다.
from https://stackoverflow.com/questions/2200636/oracle-connect-by-clause-equivalent-in-sql-server by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] C # 및 SQL Server 관리 Studio에서 SQL 쿼리의 매우 다른 실행 시간 (0) | 2020.07.09 |
---|---|
[SQL] 각 카테고리에서 MYSQL 하나를 선택 랜덤 기록 (0) | 2020.07.09 |
[SQL] 어떻게 SQL과 "이적 그룹"레이블을? (0) | 2020.07.09 |
[SQL] SQL 서버의 칼럼에서 변환 행 값 (PIVOT) (0) | 2020.07.08 |
[SQL] 지금 () 함수로부터 시간 빼기 (0) | 2020.07.08 |