Heim >Datenbank >MySQL-Tutorial >Wie sortiere ich Nicht-Null-Werte aufsteigend, dann Nullen, mit -1-Werten zuletzt in PostgreSQL?
In einer PostgreSQL-Tabelle mit einem optionalen Sortierfeld ist das Ziel um Werte wie folgt zu sortieren:
Um dieses Sortierverhalten zu erreichen, besteht ein Ansatz darin, das folgende ORDER BY zu verwenden Klausel:
ORDER BY (sort IS NOT DISTINCT FROM -1), sort
Diese Klausel funktioniert wie folgt:
Betrachten Sie die bereitgestellten Beispieldaten:
id | f_id | name | sort |
---|---|---|---|
1 | 1 | zeta | -1 |
2 | 1 | alpha | 1 |
3 | 1 | gamma | 3 |
4 | 1 | beta | 2 |
5 | 1 | delta | NULL |
6 | 1 | epsilon | NULL |
Unter Verwendung der bereitgestellten Klausel wird die Elemente würden wie folgt sortiert:
alpha, beta, gamma, delta, epsilon, zeta
Eine äquivalente Alternative zum Anfangssatz ist:
ORDER BY (sort IS DISTINCT FROM -1) DESC, sort
Dieser Satz erzeugt das gleiche Sortierverhalten, jedoch verwendet das Schlüsselwort DESC, um den Ausdruck (sort IS DISTINCT FROM -1) in absteigender Reihenfolge zu sortieren.
Das obige ist der detaillierte Inhalt vonWie sortiere ich Nicht-Null-Werte aufsteigend, dann Nullen, mit -1-Werten zuletzt in PostgreSQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!