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

Por que os valores NULL vêm primeiro ao ordenar o DESC em uma consulta do PostgreSQL?


Na verdade, com a ordem de classificação padrão (ASCENDING ) Valores NULL vêm por último .

A lógica determina que a ordem de classificação seja invertida com o DESCENDING palavra-chave, então NULLs vêm primeiro nesse caso.

Mas a melhor parte vem por último:você pode escolher como quer:
  • Use o NULLS FIRST | LAST cláusula.

Citando o atual manual, versão 9.3 no momento da redação:

Se NULLS LAST for especificado, os valores nulos serão classificados após todos os valores não nulos; if NULLS FIRST for especificado, os valores nulos serão classificados antes de todos os valores não nulos. Se nenhum for especificado, o comportamento padrão éNULLS LAST quando ASC é especificado ou implícito e NULLS FIRST quando DESC é especificado (assim, o padrão é agir como se os nulos fossem maiores que os não-nulos). Quando USING for especificado, a ordenação de nulos padrão depende se o operador é um operador menor ou maior que.

Minha ênfase em negrito.