PostgreSQL-Tabellensortierung: NULL-Wert-Prioritätseinstellung
Beim Sortieren einer PostgreSQL-Tabelle nach einem Datums-/Uhrzeitfeld in aufsteigender Reihenfolge kann es vorkommen, dass einige Datensätze NULL-Werte in diesem Feld haben. Normalerweise erscheinen diese Datensätze nach Nicht-NULL-Datensätzen. Möglicherweise möchten Sie jedoch zuerst Datensätze mit NULL-Werten anzeigen.
Der ORDER BY
-Ausdruck von PostgreSQL stellt den NULLS FIRST
-Modifikator für diesen Zweck bereit. Mit diesem Modifikator können Sie die Tabelle wie folgt sortieren:
<code class="language-sql">... ORDER BY last_updated NULLS FIRST</code>
Dadurch wird sichergestellt, dass last_updated
Datensätze mit NULL-Werten für Felder vor Datensätzen mit Nicht-NULL-Werten angezeigt werden.
Für die absteigende Sortierung können Sie den Modifikator NULLS LAST
verwenden:
<code class="language-sql">... ORDER BY last_updated DESC NULLS LAST</code>
Um einen Index zu erstellen, der diese Abfrage unterstützt, stellen Sie sicher, dass er mit der Reihenfolge der ORDER BY
-Klauseln übereinstimmt:
<code class="language-sql">CREATE INDEX foo_idx ON tbl (last_updated DESC NULLS LAST);</code>
Alternativ können Sie einen Index erstellen, ohne die Option NULLS LAST
explizit anzugeben, da PostgreSQL Btree-Indizes umgekehrt lesen kann:
<code class="language-sql">CREATE INDEX foo_idx ON tbl (last_updated);</code>
In einigen Fällen kann die Position von NULL-Werten im Index die Abfrageleistung beeinträchtigen. Weitere Informationen hierzu finden Sie in der PostgreSQL-Dokumentation.
Das obige ist der detaillierte Inhalt vonWie sortiere ich PostgreSQL-Tabellen mit NULL-Werten zuerst oder zuletzt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!