COALESCE

取り出したデータがNULLのとき、「-」表示をしたい場合などはどのようにされていらっしゃるだろうか?たとえばプログラム側でデータを取り出してきて、NULLだったら代わりに「-」を出力するというロジックが思いついた場合には、COALESCEというSQL92の関数の利用を検討すると良いと思う。
たとえば、hogehogeフィールドからデータを取得したい場合には、
SELECT COALESCE(hogehoge, ‘-‘)
FROM table_name;
とすることでhogehogeがNULLだった場合に-が返るようになる。SQL92対応なので、基本的にはどのRDBMSでも対応しているはず。COALESCEは引数を無制限にとるので、COALESCE(a, b, c)ならばaがNULLならbが、bがNULLならcが利用されるといった形になってとても便利である。
このようなテクニックが数多く掲載されているプログラマのためのSQL 第2版はSQLを日ごろ利用している人でも一見の価値があると思う。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です