オラクルでSUMとNVLでデータがないときに0を返す
オラクルでSUMとNVLを使用して、データがない場合は0が返ってくるようにします。
以下のような料金テーブルがあるとします。
ID | RYOKIN |
---|---|
1 | NULL |
2 | 30 |
RYOKINカラムにNULLがありますが以下のようにSQLを発行しても正しく合計を求めることができます。
SELECT SUM(RYOKIN) FROM 料金テーブル
なのでSUM(NVL(RYOKIN),0)とする必要はありません。
但し、以下のように条件を付けるとデータは0件になります。
SELECT SUM(RYOKIN) FROM 料金テーブル WHERE ID = 3
このSQLの結果はNULLになります。条件に合致するデータがない場合のSUMの結果はNULLになります。
なので、条件に合致しない(データが取得できない)ことを考慮し、NULLの場合0を返すようにするのなら以下のようにNVLでSUMを囲みます。
SELECT NVL(SUM(RYOKIN),0) FROM 料金テーブル WHERE ID = 3
これなら結果は0が返ってきます。
KHI入社して退社。今はCONFRAGEで正社員です。関西で140-170/80~120万から受け付けております^^
得意技はJS(ES6),Java,AWSの大体のリソースです
コメントはやさしくお願いいたします^^
座右の銘は、「狭き門より入れ」「願わくは、我に七難八苦を与えたまえ」です^^
コメント