おすすめアイテムをいくつか紹介

広告ブロックがONになっていると表示されないことがあります。


【Oracle】COUNT関数で列を指定するとNULLが集計されない話

お疲れ様です。
はるさらと申します。

今回は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関数』を使用してください。

どなたかの役に立てば幸いです。
それではまたー!

ABOUT US
harusara
はるさらと申します。現在はSIerとして働いており、このブログにIT系の備忘録を気ままに残しております。少しでも多くの方に役立てば幸いです♪ 連絡をいただける場合はサイドバーのお問い合わせかTwitterのDMよりお願いいたします。