Hierarkiska och rekursiva frågor i SQL Server
Jasmin Ludolf
Content Developer

Anger en tillfällig namngiven resultatmängd, kallad en common table expression (CTE). Den härleds från en enkel fråga och definieras inom körningsomfånget för ett enskilt uttryck
WITH CTEtable as ( -- a query -- )SELECT * FROM CTEtable
SELECT-, INSERT-, UPDATE- eller DELETE-satserWITH-satsUNION eller JOINVälj ut chefer med en CTE:
WITH JOBS (id, SurName, JobTitle) AS( SELECT ID, Name, Position FROM employee WHERE Position like '%Manager%' ),
WITH AS för att definiera CTE:nSELECT mot tabellen EmployeeVälj ut anställda med lön över 10 000
SALARIES (ID,Salary) AS (
SELECT
ID,
Salary
FROM ITSalary
WHERE Salary > 10000)
Hela frågan:
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
Hierarkiska och rekursiva frågor i SQL Server