Heim > Datenbank > MySQL-Tutorial > Wie verwendet man Aliase in der ORDER BY-Klausel von PostgreSQL richtig?

Wie verwendet man Aliase in der ORDER BY-Klausel von PostgreSQL richtig?

Barbara Streisand
Freigeben: 2024-12-31 11:42:10
Original
952 Leute haben es durchsucht

How to Properly Use Aliases in PostgreSQL's ORDER BY Clause?

Sortieren nach Aliasen in der ORDER BY-Klausel von PostgreSQL

In PostgreSQL kann die Verwendung von Aliasen in einer ORDER BY-Klausel schwierig sein. Betrachten Sie die folgende Abfrage:

SELECT 
    title, 
    (stock_one + stock_two) AS global_stock
FROM
    product
ORDER BY
    global_stock = 0,
    title;
Nach dem Login kopieren

Beim Ausführen dieser Abfrage in PostgreSQL 8.1.23 wird ein Fehler festgestellt: „FEHLER: Spalte „global_stock“ existiert nicht“. Um dieses Problem zu lösen, gibt es zwei Hauptansätze:

Verwendung der Spaltennummer

Der erste Ansatz besteht darin, nach der Spaltennummer statt nach dem Alias ​​zu sortieren. In diesem Fall würde die Abfrage so aussehen:

SELECT 
    title, 
    (stock_one + stock_two) AS global_stock
FROM
    product
ORDER BY
    2, 1;
Nach dem Login kopieren

Hier bezieht sich „2“ auf die zweite Spalte, die der Alias ​​„global_stock“ ist.

Verwendung einer Unterabfrage

Ein alternativer Ansatz besteht darin, die ursprüngliche Abfrage in eine Unterabfrage zu packen und dann innerhalb der Unterabfrage nach dem Alias ​​zu ordnen. Die Abfrage würde wie folgt aussehen:

SELECT *
FROM
(
    SELECT 
        title, 
        (stock_one + stock_two) AS global_stock
    FROM 
        product
) AS x
ORDER BY 
    (CASE WHEN global_stock = 0 THEN 1 ELSE 0 END) DESC,
    title;
Nach dem Login kopieren

In diesem Fall wird der Alias ​​„global_stock“ innerhalb der Unterabfrage verwendet und die ORDER BY-Klausel wird auf die Ergebnismenge der Unterabfrage angewendet.

Das obige ist der detaillierte Inhalt vonWie verwendet man Aliase in der ORDER BY-Klausel von PostgreSQL richtig?. 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