今回は、並び替え(ソート)の際に、データのあるものから昇順に並べ、nullを後ろにする方法についてお話しします。
IS NULL ASCを使ったNULL値の後ろへのソート
データベースクエリで、NULL値をデータの末尾に持ってくる方法は、IS NULL ASC
を使用することです。この方法を使うことで、データがNULLの場合に1、データが存在する場合に0という値を持つ一時的なカラムを作成し、それを使って昇順にソートします。
1 2 3 |
SELECT 表示カラム FROM テーブル名 ORDER BY 対象カラム IS NULL ASC, 対象カラム ASC; |
SELECT 表示カラム FROM テーブル名 ORDER BY 対象カラム IS NULL ASC, 対象カラム ASC;
上記のクエリでは、IS NULL ASC
によって、NULL値を後ろに持ってきます。そして、その後に対象カラムを昇順にソートします。これにより、データがNULLでないものが最初に表示され、その後にNULL値が表示されるようになります。
データ有りの中でのソート
IS NULL ASC
を使用してNULL値を後ろにソートした後、さらにデータ有りの部分においてソートを行いたい場合、対象カラムに対して再度ASCを指定します。これにより、NULL値を後ろに持ってきた後に、データ有りの部分で昇順にソートされます。
この方法を使うことで、データベースクエリにおいてデータの昇順ソートとNULL値の取り扱いを効果的に行うことができます。