- ベストアンサー
SELECT文で足し算をした場合、NULL値なら0で、結果を取得する方法
SELECT文で足し算をした場合、NULL値なら0で、 結果を取得する方法を教えて下さい。 select test1 + test2 from testdb; とした文を以下のようにしてみたのですが、 NULL値が0で表示できませんでした。 select COALESCE(( test1 + test2 ),0) from testdb; このような足し算で、初期値設定していなくて、 ここでのみ、表示させる方法を教えて下さい。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
select の結果が必ず1レコードもしくはnull になるという条件なら、selectの結果にcoalesce()すればご希望通りかと。 update testb set nswer = coalesce((select coalesce(test1, 0)+coalesce(test2, 0) from testdb where 条件), 0);
その他の回答 (1)
- daling_2004
- ベストアンサー率55% (19/34)
test1もしくはtest2がnull値のとき、test1+test2の結果もnull値になるので、coalesce(test1+test2, 0)は 0 になります。 よって、↓が正解。 select coalesce(test1, 0)+coalesce(test2, 0) from testdb;
補足
回答有難うございます。 わかり易い回答有難うございます。 1つ良ければ、教えていただきたいのですが、 update testb set nswer = (select coalesce(test1, 0)+coalesce(test2, 0) from testdb where 条件) ; とした場合、testdbで条件に該当がないレコードが あった場合は、null値を0表示にするのは、 不可能なのでしょうか?
お礼
うまく出来ました。 有難うございました。