Espressione di tabella comune (CTE) – Espressione di tabella comune in SQL Server
- 12-09-2022
- Toanngo92
- 0 Comments
Common Table Expression (CTE) – Espressioni di tabella comuni
Un CTE può essere inteso come un set di risultati temporaneo definito nell’ambito di una singola istruzione SELECT, INSERT, UPDATE, DELETE o CREATE VIEW. CTE Un CTE è un’espressione denominata definita in una query. Il CTE è definito all’inizio della query e può essere referenziato più volte nella query esterna.
Un CTE che include riferimenti a se stesso è chiamato CTE ricorsivo.
Il punto di forza di CTE è sviluppare la capacità di leggere i comandi e mantenere facilmente un comando complesso.
Sintassi:
WITH <CTE_Name> AS (<CTE_definition>)
Ad esempio, per ottenere e visualizzare il cliente annuale per gli ordini contenuti nella tabella Sales.SalesOrderHeader :
WITH CTE_OrderYear AS (SELECT YEAR(OrderDAte) AS OrderYear,CustomerID FROM Sales.SalesOrderHeader) SELECT OrderYear, COUNT(DISTINCT CustomerID) AS CustomerCount FROM CTE OrderYear GROUP BY OrderYear;
Nell’esempio precedente, CTE_OrderYear è specificato come nome del CTE. La parola chiave WITH … AS inizia a definire un CTE, quindi il CTE viene utilizzato nell’istruzione SELECT per recuperare e visualizzare l’intero risultato.
Più CTE possono essere definiti insieme nella clausola WITH . Per esempio:
WITH CTE_Students AS ( SELECT S.StudentCode, S.Name, C.CityName, St.Status FROM Student S) INNER JOIN City C ON S.CityCode = C.CityCode INNER JOIN Status St ON S.StatusId = St.StatusID), StatusRecord AS ( SELECT Status, COUNT(Name) AS CountofStudents FROM CTE_Students GROUP BY Status ) SELECT * FROM StatusRecord