PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Utilisation de LENGTH (colonne calculée) dans ORDER BY dans Postgres sql

Postgres adhère à la norme en autorisant les alias de colonne comme order by clés. Donc ça marche :

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

Cependant, cela ne s'étend pas aux expressions en utilisant les alias. Vous pouvez résoudre ce problème à l'aide de sous-requêtes ou de CTE. Je pourrais également suggérer une jointure latérale :

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;