Heim > Datenbank > MySQL-Tutorial > Wie sortiere ich Nullen zuletzt in PostgreSQL mit einer bestimmten Wertausnahme?

Wie sortiere ich Nullen zuletzt in PostgreSQL mit einer bestimmten Wertausnahme?

Barbara Streisand
Freigeben: 2024-12-29 11:44:18
Original
516 Leute haben es durchsucht

How to Sort Nulls Last in PostgreSQL with a Specific Value Exception?

Sortierung: Immer Nullen mit Ausnahme besonderer Ausnahmen

Beim Organisieren von Daten in einer Datenbanktabelle mit einem optionalen Sortierfeld ist es üblich, Nullwerte zuletzt zu platzieren. Manchmal ist jedoch eine Ausnahme für bestimmte Werte erforderlich. In PostgreSQL entstand die Anforderung, Nullwerte nach Nicht-Nullen zu sortieren, wobei -1 eine Ausnahme war, die nach allen anderen kommen sollte.

Um dies zu erreichen, bot sich eine einfache Lösung an:

SELECT *
FROM   tasks
ORDER  BY (sort IS NOT DISTINCT FROM -1), sort;
Nach dem Login kopieren

Postgres behandelt boolesche Werte als Typ, einschließlich NULL. Seine Standardsortierreihenfolge ist:

  • FALSE (0)
  • TRUE (1)
  • NULL

Im Ausdruck (sort NICHT UNTERSCHIEDLICH VON -1), wird die Bedingung für alle Werte mit FALSE ausgewertet, mit Ausnahme von -1, das als TRUE ausgewertet wird und als letztes sortiert wird. Wenn Sie dies mit einer sekundären Sortierung kombinieren, werden die Daten wie gewünscht sortiert.

Eine alternative Abfrage, die das gleiche Ergebnis liefert, ist:

SELECT *
FROM   tasks
ORDER  BY (sort IS DISTINCT FROM -1) DESC, sort;
Nach dem Login kopieren

Durch Nutzung der booleschen Funktionalität von Postgres und Kombination mit der ORDER BY-Klausel wird es möglich, komplexe Sortieranforderungen problemlos zu bewältigen.

Das obige ist der detaillierte Inhalt vonWie sortiere ich Nullen zuletzt in PostgreSQL mit einer bestimmten Wertausnahme?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage