PostgresqlでNVL(NULL置換)
Postgresqlでは、OracleやInformix等でNULL置換を行うNVL関数が存在しない。
代わりにCOALESCE(コアレス)関数が用意されている。
使い方というよりは綴りを忘れてしまうのでメモ。
1 | SELECT COALESCE(target_col, " ") FROM target_table; |
なお、正確にはNVL関数は「該当する値がNULLの場合の代替値を返す」仕様に対して、CALESCEは「NULLでない自身の最初の引数を返す」仕様であり引数を列挙することができる。
1 | SELECT COALESCE(target_col1, target_col2, target_col3, " ") FROM target_table; |
上記の場合は、target_col1がNULLならtarget_col2、それもNULLならtarget_col3。それでもNULLなら” “、といった「IF-ELSE構文」のような挙動をする。