Heim >Datenbank >MySQL-Tutorial >Wie kann ich Aliase in einer SQL-WHERE-Klausel korrekt referenzieren?

Wie kann ich Aliase in einer SQL-WHERE-Klausel korrekt referenzieren?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-26 14:03:14780Durchsuche

How Can I Correctly Reference Aliases in a SQL WHERE Clause?

Aliase in der WHERE-Klausel referenzieren

Bei der Arbeit mit SQL-Abfragen ist es oft notwendig, Aliase zu verwenden, um Tabellen oder Ausdrücken temporäre Namen zu geben . Dies kann die Lesbarkeit und Wartbarkeit Ihres Codes verbessern. Es ist jedoch wichtig, sich der Einschränkungen bei der Referenzierung von Aliasen in verschiedenen Teilen der Abfrage bewusst zu sein.

Das Problem

Im bereitgestellten Beispiel wird ein Versuch unternommen um auf einen Alias ​​(_year) in der WHERE-Klausel einer Abfrage zu verweisen. Dies führt jedoch zu einem Fehler:

ERROR:  column "_year" does not exist

Dieser Fehler tritt auf, weil die WHERE-Klausel zuerst und vor der SELECT-Klausel ausgeführt wird. Zum Zeitpunkt der Ausführung hat die Datenbank die Aliasdefinition in der SELECT-Klausel noch nicht gefunden und kann sie daher nicht erkennen.

Lösung

Um dieses Problem zu umgehen, Sie können die Abfrage so umschreiben, dass der Alias ​​in der WHERE-Klausel selbst definiert wird. Dadurch wird sichergestellt, dass der Alias ​​verfügbar ist, wenn die WHERE-Klausel ausgeführt wird:

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

Durch Platzieren der Aliasdefinition in der WHERE-Klausel können Sie innerhalb derselben Klausel auf den Alias ​​verweisen, ohne dass Fehler auftreten.

Das obige ist der detaillierte Inhalt vonWie kann ich Aliase in einer SQL-WHERE-Klausel korrekt referenzieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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