PostgreSQL で NULL 値をテーブルの末尾に並べ替える
データを並べ替える場合、NULL 値はテーブルの処理を中断する可能性があるため、問題が発生する可能性があります。意図した順序。 PostgreSQL では、使用される並べ替え順序に基づいて NULL 値の動作が異なります。
デフォルトの昇順
デフォルトでは、行を昇順で並べ替える場合、NULL 値は結果の先頭に配置されます。これは、NULL が NULL 以外の値よりも小さいと見なされるためです。
NULLS を使用しない降順 LAST
ただし、NULL を使用せずに降順で並べ替える場合は、 LAST オプションでは、NULL 値が先頭に配置されます。これは、降順では NULL が非 NULL 値よりも大きいと見なされるためです。
NULLS LAST の降順
NULL 値を最後までソートするにはテーブルを降順で指定するには、NULLS LAST オプションを使用します:
ORDER BY somevalue DESC NULLS LAST
このオプションは、降順で並べ替える場合、NULL 値は最小値として扱われます。
PostgreSQL 8.2 以前の代替方法
PostgreSQL バージョン 8.2 以前、または RDBMS の場合NULLS LAST オプションをサポートしていない場合は、次のオプションを使用できます。回避策:
ORDER BY (somevalue IS NULL), somevalue DESC
この式は、FALSE (NULL を表す) が TRUE (NULL 以外の値を表す) より前にソートされるという事実を利用します。 somevalue フィールドが NULL かどうかをチェックすることで、NULL 値を並べ替え順序の最後に事実上移動します。
以上がNULL 値を PostgreSQL テーブルの末尾にソートするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。