SQL Server 的階層式與遞迴查詢
Jasmin Ludolf
Content Developer

指定一個臨時的具名結果集,稱為 common table expression(CTE)。它源自一個簡單查詢,並定義在單一陳述的執行範圍內。
WITH CTEtable as ( -- a query -- )SELECT * FROM CTEtable
SELECT、INSERT、UPDATE、DELETE 陳述WITH 中定義多個 CTEUNION 或 JOIN 結合多個 CTE使用 CTE 篩選管理職:
WITH JOBS (id, SurName, JobTitle) AS( SELECT ID, Name, Position FROM employee WHERE Position like '%Manager%' ),
WITH AS 定義 CTEEmployee 資料表做 SELECT選出薪資超過 10,000 的員工
SALARIES (ID,Salary) AS (
SELECT
ID,
Salary
FROM ITSalary
WHERE Salary > 10000)
完整查詢:
WITH JOBS (id, SurName, JobTitle) AS ( SELECT ID, Name, Position FROM employee WHERE Position like '%Manager%'),SALARIES (ID,Salary) AS ( SELECT ID, Salary FROM ITSalary WHERE Salary > 10000)SELECT JOBS.Name, JOBS.Position, SALARIES.Salary FROM JOBS INNER JOIN SALARIES on JOBS.ID = SALARIES.ID;
SurNmames | JobTitle | Salary
Paul Smith | IT Manager | 15,000
Adam Peterson | Sourcing Manager | 12,500
Anna Nilson | Portfolio Manager | 10,500
SQL Server 的階層式與遞迴查詢