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

Perché i valori NULL vengono prima quando si ordina DESC in una query PostgreSQL?

In realtà, con l'ordinamento predefinito (ASCENDING ) I valori NULL sono ultimi .

La logica impone che l'ordinamento venga invertito con il DESCENDING parola chiave, quindi i NULL vengono prima in questo caso.

Ma la parte migliore viene per ultima:puoi scegliere come preferisci:

  • Usa il NULLS FIRST | LAST clausola.

Citando la corrente manuale, versione 9.3 al momento della stesura:

Se NULLS LAST è specificato, i valori null vengono ordinati dopo tutti i valori non nulli; se NULLS FIRST è specificato, i valori null vengono ordinati prima di tutti i valori non null. Se non viene specificato nessuno dei due, il comportamento predefinito èNULLS LAST quando ASC è specificato o implicito e NULLS FIRST quando DESC è specificato (quindi, l'impostazione predefinita è agire come se i valori null fossero maggiori di quelli non null). Quando USING viene specificato, l'ordinamento dei valori null di default dipende dal fatto che l'operatore sia un operatore minore o maggiore di.

Enfasi in grassetto la mia.