Interogări ierarhice și recursive în SQL Server
Jasmin Ludolf
Content Developer

Specifică un set de rezultate temporar cu nume, cunoscut ca expresie de tabel comună (CTE). Acesta este derivat dintr-o interogare simplă și definit în contextul de execuție al unui singur enunț
WITH CTEtable as ( -- a query -- )SELECT * FROM CTEtable
SELECT, INSERT, UPDATE sau DELETEWITHUNION sau JOINSelectarea managerilor cu un CTE:
WITH JOBS (id, SurName, JobTitle) AS( SELECT ID, Name, Position FROM employee WHERE Position like '%Manager%' ),
WITH AS pentru a defini CTE-ulSELECT pe tabelul EmployeeSelectarea angajaților cu salariu peste 10.000
SALARIES (ID,Salary) AS (
SELECT
ID,
Salary
FROM ITSalary
WHERE Salary > 10000)
Interogarea completă:
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
Interogări ierarhice și recursive în SQL Server