NULL-Werte nach allen anderen ordnen, mit Ausnahme von Sonderwerten
Beim Sortieren von Daten in einer PostgreSQL-Tabelle, die optionale Sortierfelder enthält, ist dies eine häufige Herausforderung verarbeitet Nullwerte. Es ist wünschenswert, Aufgaben mit Null-Sortierwerten nach allen anderen zu platzieren, Aufgaben mit einem speziellen Sortierwert wie -1 jedoch Vorrang einzuräumen.
Dies kann durch die Verwendung der COALESCE-Funktion in Verbindung mit booleschen Operatoren erreicht werden , insbesondere der Operator (IS NOT DISTINCT FROM). Die folgende Abfrage veranschaulicht diesen Ansatz:
SELECT * FROM tasks ORDER BY (sort IS NOT DISTINCT FROM -1), sort;
So funktioniert es:
Der Ausdruck (sort IS NOT DISTINCT FROM -1) ergibt für alle Werte außer „FALSE“. -1, was als TRUE ausgewertet wird. In der Standardsortierreihenfolge von PostgreSQL werden NULL-Werte an letzter Stelle platziert, während TRUE einen höheren Rang einnimmt als FALSE.
Durch die Einbindung dieses Ausdrucks in die ORDER BY-Klausel werden Aufgaben mit Sortierwerten von -1 nach Aufgaben mit Nicht-Werten positioniert. Null-Sortierwerte, während Aufgaben mit Null-Sortierwerten nach allen anderen Aufgaben platziert werden.
Zusätzlich Hinweis:
Eine alternative äquivalente Abfrage kann mit dem DESC-Schlüsselwort geschrieben werden:
SELECT * FROM tasks ORDER BY (sort IS DISTINCT FROM -1) DESC, sort;
Das obige ist der detaillierte Inhalt vonWie ordne ich PostgreSQL-Daten mit NULL-Werten zuletzt an, mit Ausnahme eines bestimmten Werts?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!