ホームページ > データベース > mysql チュートリアル > PostgreSQLで最初にNULL値を使用して日付/時刻の昇順で並べ替えるにはどうすればよいですか?

PostgreSQLで最初にNULL値を使用して日付/時刻の昇順で並べ替えるにはどうすればよいですか?

DDD
リリース: 2025-01-23 02:22:10
オリジナル
237 人が閲覧しました

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

PostgreSQL テーブルの日付/時刻フィールドは昇順でソートされ、NULL 値が最初になります

PostgreSQL テーブルで日付/時刻フィールドで昇順にソートする場合、NULL 値を優先する必要があります。さらに、NULL 以外の last_updated レコードは、NULL 値の直後に昇順で並べ替える必要があります。

PostgreSQL の ORDER BY 式は、この状況を処理するための NULLS FIRST | LAST 修飾子を提供します。 NULLS FIRST を指定すると、last_updated フィールドに NULL 値を持つレコードが、NULL 以外のレコードの前に表示されます:

<code class="language-sql">... ORDER BY last_updated NULLS FIRST</code>
ログイン後にコピー

ただし、降順ソート (DESC) で NULLS FIRST を使用すると、逆の結果が返され、NULL 値が最後に表示されます。 NULL 値を降順で最後に配置するには、NULLS LAST を使用します:

<code class="language-sql">... ORDER BY last_updated DESC NULLS LAST</code>
ログイン後にコピー

変更された並べ替え順序でインデックスを使用するには、インデックス定義と一致する必要があります:

<code class="language-sql">CREATE INDEX foo_idx ON tbl (last_updated DESC NULLS LAST);</code>
ログイン後にコピー

PostgreSQL は btree インデックスを逆に読み取ることができますが、並べ替え順序と一致するインデックスを作成する方が効率的です。

<code class="language-sql">CREATE INDEX foo_idx ON tbl (last_updated);</code>
ログイン後にコピー

追加されたリスト内の NULL 値の位置は、クエリのパフォーマンスに影響します。詳細については、「集計関数に対するビューのパフォーマンスへの影響と結果セットの制限」を参照してください。

以上がPostgreSQLで最初にNULL値を使用して日付/時刻の昇順で並べ替えるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート