PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Utilizzando LENGTH (colonna calcolata) in ORDER BY in Postgres sql

Postgres aderisce allo standard consentendo alias di colonna come order by chiavi. Quindi funziona:

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

Tuttavia, non lo estende alle espressioni usando gli alias. Puoi risolverlo usando sottoquery o CTE. Potrei anche suggerire un join laterale:

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;