sql >> Base de Datos >  >> RDS >> PostgreSQL

Usando LENGTH (columna calculada) en ORDER BY en Postgres sql

Postgres se adhiere al estándar al permitir alias de columna como order by llaves. Entonces esto funciona:

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

Sin embargo, no extiende esto a expresiones utilizando los alias. Puede solucionar esto mediante subconsultas o CTE. También podría sugerir una unión 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;