Meine Frage hier ist, was ist der Unterschied zwischen CTE
und View
in SQL. Ich meine, in diesem Fall sollte ich die CTE
und den Fall der View
verwenden. Ich weiß, dass beide eine Art virtuelle Tische sind, aber ich kann ihre Verwendung nicht unterscheiden.SQL - CTE vs VIEW
Ich fand eine ähnliche Frage here, aber es geht um die Leistung.
Update 1:
Zum Beispiel: Ich habe eine Datenbank mit Geschäften gefüllt (tbl_trade
). Ich muss aus 3.5 Millionen Datensätze nur die Trades auswählen, die den aktuellen Monat bis zur aktuellen Zeit geöffnet wurden und dann die Daten manipulieren (mit unterschiedlichen Abfragen auf der virtuellen Tabelle - das sieht wie View aus). Das Problem hier ist, dass ich eine SUM
3-4 Spalten und dann auf Ich brauche SUM
einige Spalten und erstellen Sie eine virtuelle Spalte mit dem Ergebnis (sieht aus wie CTE).
ZB: tbl_trade
hat Spalten: profit
, bonus
und expenses
. Ich brauche SUM(profit)
, SUM(bonus)
, SUM(expenses)
und eine neue Spalte total
, die gleich SUM(profit)
+ SUM(bonus)
+ SUM(expenses)
ist.
PS. Das Ausführen der Abfragen für SUM
ist keine Option, da ich bereits das Ergebnis habe.
Vielen Dank im Voraus!
Eine Ansicht ist ein Objekt in der Datenbank. Ein CTE existiert nur für die Dauer einer einzelnen Abfrage. Sie scheinen sehr unterschiedlich zu sein. Können Sie ein Beispiel für die Wahl zwischen ihnen geben? –
Wie viele Daten haben Sie? CTE verwendet TempDb ausgiebig und wenn Ihr TempDb nicht richtig konfiguriert ist oder Ihr CTE eine große Anzahl von Zeilen verarbeitet, ist es nicht die beste Wahl. Wählen Sie View, wenn Sie mit großen Datenmengen und CTE mit kleinen Datenmengen arbeiten. Sie können CTE auch auswählen, wenn Sie eine Rekursion benötigen. Das ist alles ! –
Hallo und danke für deine Antworten. Siehe die aktualisierten Fragen – BlackM