Heim >Datenbank >MySQL-Tutorial >Wie kann ich Aliase in der WHERE-Klausel von PostgreSQL korrekt verwenden?
Referenzieren auf Aliase in WHERE-Klauseln in Postgres
In PostgreSQL kann das Verweisen auf Aliase in der WHERE-Klausel zu Fehlern wie „Spalte funktioniert nicht“ führen existieren." Dies liegt daran, dass die WHERE-Klausel ausgeführt wird, bevor Aliase in der SELECT-Klausel definiert werden.
Warum das nicht möglich ist
In SQL werden Klauseln in einer bestimmten Reihenfolge ausgeführt: WHERE , FROM, GROUP BY, HAVING, SELECT, ORDER BY. Das bedeutet, dass Postgres, wenn es auf die WHERE-Klausel stößt, noch keine Aliase kennt, die Sie in der SELECT-Klausel definiert haben.
Lösung
Um dieses Problem zu beheben, Sie müssen Ihre Abfrage neu schreiben, um die Verwendung von Aliasen in der WHERE-Klausel zu vermeiden. Geben Sie stattdessen direkt den zu vergleichenden Ausdruck an. Die folgende Abfrage wählt beispielsweise korrekt Zeilen aus, in denen das zweite bis sechste Zeichen der Spalte „pk“, umgewandelt als Ganzzahl, größer als 90 ist:
SELECT SUBSTRING(pk, 6, 2)::INT AS _year FROM listing WHERE SUBSTRING(pk, 6, 2)::INT > 90
Hinweis: Dies Die Einschränkung gilt nur für Aliase, die in der SELECT-Klausel definiert sind. Aliase, die in anderen Klauseln wie FROM oder JOIN definiert sind, können in nachfolgenden Klauseln verwendet werden.
Das obige ist der detaillierte Inhalt vonWie kann ich Aliase in der WHERE-Klausel von PostgreSQL korrekt verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!