こんにちは、さるまりんです。
PostgreSQLの小ネタです。
PostgreSQLではSELECT
する際にNULLS FIRST
とNULLS LAST
でNULL
のデータを並び替えたときに最初にするか最後にするかを指定することができます。
例でみてみます。
型がint
(整数)のカラムval
を一つだけ持つテーブルsimple_int
に次のようなデータが入っています。(以下はvalの値です。)
1 |
NULL |
5 |
3 |
NULL |
4 |
2 |
このテーブルのデータをval
のDESC
(降順)でSELECT
すると
SELECT * FROM simple_int
ORDER BY a DESC;
次の順でデータがとれます。
NULL |
NULL |
5 |
4 |
3 |
2 |
1 |
NULL
が先にきていますね。
これをNULLを後にしたい場合はこうします。
SELECT * FROM simple_int
ORDER BY a DESC NULLS LAST;
取れるデータはこうです。
5 |
4 |
3 |
2 |
1 |
NULL |
NULL |
NULL
の扱いって何をどう作っているかで変わってきますよね。
そんな時にこれが使えると便利かな。
ちょっとしたことですが今回使うことがあったので覚えておくためにここに置いておきます。
読んでくださってありがとうございました。
それではまた!