Heim > Datenbank > MySQL-Tutorial > Wie sortiere ich in PostgreSQL nach aufsteigendem Datum/Uhrzeit mit NULL-Werten zuerst?

Wie sortiere ich in PostgreSQL nach aufsteigendem Datum/Uhrzeit mit NULL-Werten zuerst?

DDD
Freigeben: 2025-01-23 02:22:10
Original
237 Leute haben es durchsucht

How to Sort by Ascending Date/Time with NULL Values First in PostgreSQL?

Datums-/Uhrzeitfelder der PostgreSQL-Tabelle in aufsteigender Reihenfolge sortiert, NULL-Werte zuerst

Beim Sortieren nach Datums-/Uhrzeitfeldern in aufsteigender Reihenfolge in einer PostgreSQL-Tabelle müssen NULL-Werte Vorrang haben. Darüber hinaus sollten last_updated-Datensätze ungleich Null unmittelbar nach NULL-Werten in aufsteigender Reihenfolge sortiert werden.

Der ORDER BY-Ausdruck von PostgreSQL stellt den NULLS FIRST | LAST-Modifikator zur Verfügung, um diese Situation zu bewältigen. Durch die Angabe von NULLS FIRST werden Datensätze mit einem NULL-Wert für das Feld „last_updated“ vor Nicht-NULL-Datensätzen angezeigt:

<code class="language-sql">... ORDER BY last_updated NULLS FIRST</code>
Nach dem Login kopieren

Die Verwendung von NULLS FIRST mit absteigender Sortierung (DESC) liefert jedoch das gegenteilige Ergebnis, NULL-Werte werden zuletzt angezeigt. Um NULL-Werte in absteigender Reihenfolge an letzter Stelle zu setzen, verwenden Sie NULLS LAST:

<code class="language-sql">... ORDER BY last_updated DESC NULLS LAST</code>
Nach dem Login kopieren

Um einen Index mit der geänderten Sortierreihenfolge zu verwenden, sollte er mit der Indexdefinition übereinstimmen:

<code class="language-sql">CREATE INDEX foo_idx ON tbl (last_updated DESC NULLS LAST);</code>
Nach dem Login kopieren

Obwohl PostgreSQL Btree-Indizes umgekehrt lesen kann, ist es effizienter, einen Index zu erstellen, der der Sortierreihenfolge entspricht:

<code class="language-sql">CREATE INDEX foo_idx ON tbl (last_updated);</code>
Nach dem Login kopieren

Die Position von NULL-Werten in der angehängten Liste wirkt sich auf die Abfrageleistung aus. Weitere Informationen finden Sie unter Leistungsauswirkungen von Ansichten auf Aggregatfunktionen und Einschränkungen bei Ergebnismengen.

Das obige ist der detaillierte Inhalt vonWie sortiere ich in PostgreSQL nach aufsteigendem Datum/Uhrzeit mit NULL-Werten zuerst?. 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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage