Heim > Datenbank > MySQL-Tutorial > Kann ich Aliase in SQL-WHERE-Klauseln verwenden?

Kann ich Aliase in SQL-WHERE-Klauseln verwenden?

Linda Hamilton
Freigeben: 2024-12-26 15:47:10
Original
762 Leute haben es durchsucht

Can I Use Aliases in SQL WHERE Clauses?

Aliase in WHERE-Klauseln referenzieren

In SQL ist die Ausführungsreihenfolge von Anweisungen innerhalb einer Abfrage entscheidend. Insbesondere wird die WHERE-Klausel vor der SELECT-Anweisung ausgeführt. Das bedeutet, dass beim Verweisen auf einen Alias ​​in der WHERE-Klausel dieser definiert worden sein muss, bevor versucht wird, ihn zu verwenden.

Ursprüngliche Abfrage und Fehler

Die folgende Abfrage versucht dies Verwenden Sie einen Alias ​​(_year) in der WHERE-Klausel:

SELECT
    SUBSTRING(pk, 6, 2)::INT AS _year
FROM
    listing
WHERE
    _year > 90
Nach dem Login kopieren

Diese Abfrage löst jedoch eine aus Fehler:

ERROR:  column "_year" does not exist
LINE 1: ...STRING (pk, 6, 2)::INT AS _year FROM listing WHERE _year > 90...
                                                              ^
********** Error **********

ERROR: column "_year" does not exist
Nach dem Login kopieren

Dieser Fehler tritt auf, weil der Alias ​​(_year) erst in der SELECT-Anweisung definiert wird.

Überwindung der Einschränkung

It Aufgrund der Ausführungsreihenfolge von SQL-Anweisungen ist es nicht möglich, in der WHERE-Klausel direkt auf einen Alias ​​zu verweisen. Um diese Einschränkung zu vermeiden, schreiben Sie die Abfrage wie folgt um:

SELECT
    SUBSTRING(pk, 6, 2)::INT AS _year
FROM
    listing
WHERE
SUBSTRING(pk, 6, 2)::INT > 90
Nach dem Login kopieren

In dieser Abfrage wird der Ausdruck zur Berechnung von _year in der WHERE-Klausel wiederholt. Dies ist zwar nicht so prägnant wie die Verwendung eines Alias, stellt aber sicher, dass der Wert von _year berechnet wird, bevor er im Vergleich verwendet wird.

Das obige ist der detaillierte Inhalt vonKann ich Aliase in SQL-WHERE-Klauseln verwenden?. 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