こんにちは、さるまりんです。
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の扱いって何をどう作っているかで変わってきますよね。
そんな時にこれが使えると便利かな。
ちょっとしたことですが今回使うことがあったので覚えておくためにここに置いておきます。
読んでくださってありがとうございました。
それではまた!