Heim > Datenbank > MySQL-Tutorial > Warum erzeugt SQL Server bei der Verwendung von Aggregatfunktionsaliasen in der HAVING-Klausel den Fehler „Ungültiger Spaltenname'?

Warum erzeugt SQL Server bei der Verwendung von Aggregatfunktionsaliasen in der HAVING-Klausel den Fehler „Ungültiger Spaltenname'?

Patricia Arquette
Freigeben: 2024-12-24 17:20:15
Original
260 Leute haben es durchsucht

Why Does SQL Server Produce an

SQL Server-Alias-Einschränkung in der HAVING-Klausel

In SQL Server kann die Verwendung eines Alias ​​für eine Aggregatfunktion in der HAVING-Klausel dazu führen, dass Fehler „Ungültiger Spaltenname“. Dieser scheinbare Widerspruch ergibt sich aus dem Ausführungsablauf einer SQL-Abfrage.

Die HAVING-Klausel wird nach Gruppenoperationen, aber vor dem Auswahlprozess ausgewertet. Wenn die HAVING-Klausel zum ersten Mal ausgeführt wird, wird der der Aggregatfunktion zugewiesene Alias, z. B. „col7“ im bereitgestellten Codeausschnitt, vom Server noch nicht erkannt.

Die Reihenfolge der Abfrageausführung ist wie folgt folgt:

  1. Verbinden Sie Tabellen, die in der FROM-Klausel angegeben sind.
  2. Filtern Sie Zeilen mithilfe von WHERE Klausel.
  3. Gruppieren Sie Zeilen basierend auf der GROUP BY-Klausel.
  4. Eliminieren Sie Gruppen, die die Bedingung der HAVING-Klausel nicht erfüllen.
  5. Berechnen Sie Ausdrücke in der SELECT-Anweisung.

Daher erkennt der Server zum Zeitpunkt der Auswertung der HAVING-Klausel „col7“ nicht als gültigen Spaltennamen. Diese Einschränkung verhindert die Verwendung von Aliasen in der HAVING-Klausel, um auf Aggregatfunktionen zu verweisen.

Es ist jedoch möglich, Aliase in der ORDER BY-Klausel zu verwenden, da diese Auswertung nach der HAVING-Klausel erfolgt.

Das obige ist der detaillierte Inhalt vonWarum erzeugt SQL Server bei der Verwendung von Aggregatfunktionsaliasen in der HAVING-Klausel den Fehler „Ungültiger Spaltenname'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage