Heim > Datenbank > MySQL-Tutorial > Warum kann ich in der WHERE-Klausel einer PostgreSQL-Abfrage keine Aliase verwenden?

Warum kann ich in der WHERE-Klausel einer PostgreSQL-Abfrage keine Aliase verwenden?

Linda Hamilton
Freigeben: 2024-12-27 12:45:11
Original
903 Leute haben es durchsucht

Why Can't I Use Aliases in the WHERE Clause of a PostgreSQL Query?

Aliase in der WHERE-Klausel referenzieren: Eine Untersuchung

In PostgreSQL (psql) ist es nicht direkt möglich, Aliase in der WHERE-Klausel zu referenzieren zum Ausführungsauftrag. Die WHERE-Klausel wird ausgeführt, bevor Aliase angewendet werden, was zu dem Fehler „Spalte „_year“ existiert nicht“ führt.

Dies tritt auf, weil die WHERE-Klausel auf die ursprünglichen Spaltennamen angewendet wird und der Alias ​​erst später angewendet wird , während der Ergebnismengengenerierung. Daher wird der Alias ​​nicht erkannt, wenn die WHERE-Klausel ausgeführt wird.

Um dieses Problem zu beheben, muss die Abfrage neu geschrieben werden, um den ursprünglichen Spaltennamen direkt in der WHERE-Klausel zu verwenden. Betrachten Sie beispielsweise die Abfrage:

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

Diese Abfrage schlägt mit der Fehlermeldung „Spalte „_Jahr“ existiert nicht“ fehl. Um das Problem zu beheben, muss der Alias ​​durch den ursprünglichen Spaltennamen in der WHERE-Klausel ersetzt werden:

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

Das obige ist der detaillierte Inhalt vonWarum kann ich in der WHERE-Klausel einer PostgreSQL-Abfrage keine Aliase 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