Heim >Datenbank >MySQL-Tutorial >Wie verwende ich Aliase in der ORDER BY-Klausel von PostgreSQL richtig?
PostgreSQL: Sortieren von Ergebnissen mithilfe eines ALIAS in ORDER BY
In PostgreSQL kann die Verwendung eines Alias in der ORDER BY-Klausel zu Herausforderungen führen. Wie in der bereitgestellten Abfrage gezeigt, kann die direkte Referenzierung eines Alias in ORDER BY zu einer Fehlermeldung führen.
Fehlererklärung:
PostgreSQL erfordert, dass die ORDER BY-Klausel referenziert Spalten, die im Ergebnissatz vorhanden sind. In dieser Abfrage entspricht der Alias „global_stock“ keiner Spalte im endgültigen Ergebnissatz, daher tritt der Fehler auf.
Lösungen:
Es gibt zwei Ansätze So beheben Sie dieses Problem:
Methode 1: Neuanordnen des SELECT Liste:
Ordnen Sie die SELECT-Liste neu an, sodass der Alias als zweiter (oder nachfolgender) Ausdruck erscheint. Die folgende Abfrage funktioniert:
SELECT title, (stock_one + stock_two) AS global_stock FROM product ORDER BY 2, 1;
Diese Neuordnung stellt sicher, dass der Alias in der ORDER BY-Klausel korrekt referenziert wird.
Methode 2: Verwendung einer Unterabfrage:
Erstellen Sie eine Unterabfrage, die die ursprüngliche Auswahl umschließt, und verwenden Sie den Alias in der ORDER BY-Klausel der äußeren Abfrage. Beispiel:
SELECT * FROM ( SELECT title, (stock_one + stock_two) AS global_stock FROM product ) x ORDER BY (CASE WHEN global_stock = 0 THEN 1 ELSE 0 END) DESC, title;
Bei diesem Unterabfrageansatz wird der Alias „global_stock“ innerhalb der verschachtelten SELECT-Anweisung verwendet und die verschachtelte Ergebnismenge wird dann in der äußeren Abfrage geordnet.
Das obige ist der detaillierte Inhalt vonWie verwende ich Aliase in der ORDER BY-Klausel von PostgreSQL richtig?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!