お疲れ様です。
はるさらと申します。
今回はOracleに関する
備忘録記事となります。
タイトルにも記載していますが
OracleのCOUNT関数にて
列名を指定すると
NULLの件数が集計されません。
NULLの件数も集計したい場合の
対策・解決方法を記載していこうと思います。
例)COUNT関数でNULLが集計されない
下記の様に
select文でTBLを表示してみると
ADDRESSの項目がNULLであるレコードが
2件存在していることがわかります。
ですが、COUNT関数を使用してみると
NULLの件数が0件という結果が
返ってきています。
列名を指定しつつ
NULLも集計したい場合は
以下の関数で対応が可能です。
NVL関数を使用してNULLを集計する方法
OracleのCOUNT関数使用時に
列名を指定しながら
NULLの件数も集計したい場合は
「NVL関数」を使用しましょう。
先ほど記載したTBLで
NVL関数を使用してみると
下記の様な結果が返ってきます。
しっかりとNULLの件数も
集計してくれていることが分かります!!
NVL関数の構文
NVL関数の構文は下記となります。
select count(NVL(列名,0)) from テーブル名;
普段実行しているCOUNT関数の中に
NVL関数を設定しているだけのため
そこまで難易度の高い関数ではありません。
NVL(列名,0)
列名の個所には集計したいカラム名を。
第二引数には“置き換える値”を設定してあげることで
COUNT関数を発行したタイミングだけ
NULLを0に置き換えて、
集計できるようにしてくれています。
まとめ
OracleでCOUNT関数を使う際に
列名を指定してNULLの数も集計したい場合は
『NVL関数』を使用してください。
どなたかの役に立てば幸いです。
それではまたー!
リンク