Common Table Expression (CTE) – Common Table Expression in SQL Server
- 12-09-2022
- Toanngo92
- 0 Comments
Gemeinsamer Tabellenausdruck (CTE) – Gemeinsame Tabellenausdrücke
Ein CTE kann als eine temporäre Ergebnismenge verstanden werden, die im Rahmen einer einzelnen SELECT-, INSERT-, UPDATE-, DELETE- oder CREATE VIEW-Anweisung definiert wird. CTE Ein CTE ist ein benannter Ausdruck, der in einer Abfrage definiert ist. Der CTE wird zu Beginn der Abfrage definiert und kann in der äußeren Abfrage mehrfach referenziert werden.
Ein CTE, der Verweise auf sich selbst enthält, wird als rekursiver CTE bezeichnet.
Die Stärke von CTE besteht darin, die Fähigkeit zu entwickeln, Befehle zu lesen und einen komplexen Befehl einfach zu verwalten.
Syntax:
WITH <CTE_Name> AS (<CTE_definition>)
Um beispielsweise den jährlichen Kunden für die in der Sales.SalesOrderHeader- Tabelle enthaltenen Bestellungen abzurufen und anzuzeigen:
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;
Im obigen Beispiel wird CTE_OrderYear als Name des CTE angegeben. Das Schlüsselwort WITH … AS beginnt mit der Definition eines CTE, dann wird der CTE in der SELECT-Anweisung verwendet, um das gesamte Ergebnis abzurufen und anzuzeigen.
Mehrere CTEs können zusammen in der WITH -Klausel definiert werden. Zum Beispiel:
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