トップページに戻る    次のSQLパズルへ    前のSQLパズルへ

2-1-4 連続したnullチェック

SQLパズル

nullTable
Col1  Col2  Col3  Col4
----  ----  ----  ----
   1     2     3     4
   1     2     3  null
null     2     3     4
null  null  null  null

テーブルのCol1、Col2、Col3、Col4を取得する。
ただしCol1、Col2、Col3、Col4が全てnullなら取得しない

出力結果
Col1  Col2  Col3  Col4
----  ----  ----  ----
   1     2     3     4
   1     2     3  null
null     2     3     4


データ作成スクリプト

create table nullTable(Col1,Col2,Col3,Col4) as
select 1,2,3,4 from dual union
select 1,2,3,null from dual union
select null,2,3,4 from dual union
select null,null,null,null from dual;


SQL

select Col1,Col2,Col3,Col4
  from nullTable
where coalesce(Col1,Col2,Col3,Col4) is not null;


解説

coalesce関数は、連続したnullチェックに使えます。

coalesce関数の引数は、データ型が全て同じでないとエラーになるので、
場合によっては、to_char関数を使うといいでしょう。

10-175 少なくとも1つがnullかをチェック