Truy vấn phân cấp và đệ quy trong SQL Server
Jasmin Ludolf
Content Developer

Xác định một tập kết quả tạm thời có tên, gọi là common table expression (CTE). Nó được dẫn xuất từ một truy vấn đơn giản và được định nghĩa trong phạm vi thực thi của một câu lệnh đơn
WITH CTEtable as ( -- a query -- )SELECT * FROM CTEtable
SELECT, INSERT, UPDATE hoặc DELETEWITHUNION hoặc JOINChọn các quản lý bằng CTE:
WITH JOBS (id, SurName, JobTitle) AS( SELECT ID, Name, Position FROM employee WHERE Position like '%Manager%' ),
WITH AS để định nghĩa CTESELECT trên bảng EmployeeChọn nhân viên có lương trên 10.000
SALARIES (ID,Salary) AS (
SELECT
ID,
Salary
FROM ITSalary
WHERE Salary > 10000)
Toàn bộ truy vấn:
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
Truy vấn phân cấp và đệ quy trong SQL Server