PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Verwenden von LENGTH (berechnete Spalte) in ORDER BY in Postgres SQL

Postgres hält sich an den Standard, indem es Spaltenaliase als order by zulässt Schlüssel. Das funktioniert also:

SELECT  CONCAT(first_name, last_name)  AS full_name
FROM customer
ORDER BY full_name;

Dies wird jedoch nicht auf Ausdrücke ausgedehnt unter Verwendung der Aliase. Sie können dies mithilfe von Unterabfragen oder CTEs beheben. Ich könnte auch einen lateralen Join vorschlagen:

SELECT v.full_name
FROM customer c CROSS JOIN LATERAL
     (VALUES (CONCAT(c.first_name, c.last_name))) v(full_name)
ORDER BY v.full_name;