PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Usando LENGTH (coluna computada) em ORDER BY no Postgres sql


Postgres adere ao padrão permitindo aliases de coluna como order by chaves. Então isso funciona:
SELECT  CONCAT(first_name, last_name)  AS full_name
FROM customer
ORDER BY full_name;

No entanto, isso não se estende a expressões usando os pseudônimos. Você pode corrigir isso usando subconsultas ou CTEs. Eu também poderia sugerir uma junção lateral:
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;