Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Wann sollte man Common Table Expression (CTE) verwenden?

Ein Beispiel:Wenn Sie denselben Datensatz mehrmals referenzieren/verknüpfen müssen, können Sie dies tun, indem Sie einen CTE definieren. Daher kann es sich um eine Form der Wiederverwendung von Code handeln.

Ein Beispiel für Selbstreferenzierung ist Rekursion:Rekursive Abfragen mit CTE

Für spannende Microsoft-Definitionen aus Books Online:

Ein CTE kann verwendet werden für:

  • Erstellen Sie eine rekursive Abfrage. Weitere Informationen finden Sie unter Rekursive Abfragen mit allgemeinen Tabellenausdrücken.

  • Ersatz für eine Ansicht, wenn die allgemeine Verwendung einer Ansicht nicht erforderlich ist; das heißt, Sie müssen die Definition nicht in den Metadaten speichern.

  • Aktivieren Sie die Gruppierung nach einer Spalte, die von einer skalaren Unterauswahl abgeleitet ist, oder eine Funktion, die entweder nicht deterministisch ist oder externen Zugriff hat.

  • Verweisen Sie mehrmals in derselben Anweisung auf die resultierende Tabelle.