【PostgreSQL】Nullの時に別の値に置き換える(COALESCE)
Nullの時に置換する方法
文字列がNullの時、別の文字列に置き換えるにはCOALESCEを使用します。
※Nullでない時は、『Nullチェックする文字列』がそのまま返ります。
(OracleでのNVL、SQL ServerでのISNULL、MySQLでのCOALESCEに相当します)
--Nullの時、別の文字に置換する
COALESCE( Nullチェックする文字列 , Nullの場合に置換する文字 )
使用例
COALESCEを使った例を紹介します。 ※次の例はそのままコピー&貼り付けで実行できます
--次の例は、チェックする文字列がnullのため'abc'が返ります
select * From COALESCE(null , 'abc'); --【結果】:'abc'
--次の例は、チェックする文字列がnullでないため'xyz'が返ります
select * From COALESCE('xyz' , 'abc'); --【結果】:'xyz'
合計値、平均値を求める例
nullが含まれる(かもしれない)列を使って合計、平均値を求める例を紹介します。
--数値列がnullなら0に変換して合計値を求める
select sum(coalesce(数値列,0)) from テーブル名;
--nullのデータは無視して平均値を求める
--※nullを「-1」に変換し、「-1」を無効値として除外する
select avg(coalesce(数値列,0)) from テーブル名
where coalesce(数値列,-1) != -1;
その他の文字列操作
・文字の切り取り(Left、Right、Substring)
・文字を置換する、複数置換する(replace、translate)