PostgreSQL 表排序:NULL 值優先權設定
在按日期/時間欄位升序排序 PostgreSQL 表時,您可能會遇到某些記錄在該欄位中具有 NULL 值的情況。通常,這些記錄會出現在非 NULL 記錄之後。但是,您可能想要先顯示具有 NULL 值的記錄。
PostgreSQL 的 ORDER BY
表達式提供了 NULLS FIRST
修飾符來實現此目的。使用此修飾符,您可以如下排序表:
<code class="language-sql">... ORDER BY last_updated NULLS FIRST</code>
這將確保 last_updated
欄位為 NULL 值的記錄出現在具有非 NULL 值的記錄之前。
對於降序排序,可以使用 NULLS LAST
修飾符:
<code class="language-sql">... ORDER BY last_updated DESC NULLS LAST</code>
要建立支援此查詢的索引,請確保它與 ORDER BY
子句的順序相符:
<code class="language-sql">CREATE INDEX foo_idx ON tbl (last_updated DESC NULLS LAST);</code>
或者,您可以建立一個不明確指定 NULLS LAST
選項的索引,因為 PostgreSQL 可以反向讀取 btree 索引:
<code class="language-sql">CREATE INDEX foo_idx ON tbl (last_updated);</code>
在某些情況下,NULL 值在索引中的位置會影響查詢效能。請參閱 PostgreSQL 文件以了解這方面的更多資訊。
以上是如何對帶有 NULL 值的 PostgreSQL 表進行排序?的詳細內容。更多資訊請關注PHP中文網其他相關文章!