PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Warum kommen NULL-Werte zuerst, wenn DESC in einer PostgreSQL-Abfrage bestellt wird?

Eigentlich mit der Standard-Sortierreihenfolge (ASCENDING ) NULL-Werte kommen zuletzt .

Die Logik schreibt vor, dass die Sortierreihenfolge mit dem DESCENDING umgekehrt wird Schlüsselwort, also kommen NULLen zuerst in diesem Fall.

Aber das Beste kommt zum Schluss:Sie können wählen, wie Sie es möchten:

  • Verwenden Sie den NULLS FIRST | LAST Klausel.

Zitieren der aktuellen Handbuch, Version 9.3 zum Zeitpunkt des Schreibens:

Wenn NULLS LAST angegeben ist, werden Nullwerte nach allen Nicht-Nullwerten sortiert; wenn NULLS FIRST angegeben ist, werden Nullwerte vor allen Nicht-Nullwerten sortiert. Wenn keines angegeben ist, ist das Standardverhalten NULLS LAST wenn ASC angegeben oder impliziert ist , und NULLS FIRST wenn DESC angegeben ist (der Standardwert ist also so zu handeln, als ob Nullen größer als Nicht-Nullen wären). Beim USING angegeben ist, hängt die Standardreihenfolge von Nullen davon ab, ob der Operator ein Kleiner-als- oder ein Größer-als-Operator ist.

Fettdruck von mir.