• ベストアンサー

SELECT文で足し算をした場合、NULL値なら0で、結果を取得する方法

SELECT文で足し算をした場合、NULL値なら0で、 結果を取得する方法を教えて下さい。 select test1 + test2 from testdb; とした文を以下のようにしてみたのですが、 NULL値が0で表示できませんでした。 select COALESCE(( test1 + test2 ),0) from testdb; このような足し算で、初期値設定していなくて、 ここでのみ、表示させる方法を教えて下さい。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

select の結果が必ず1レコードもしくはnull になるという条件なら、selectの結果にcoalesce()すればご希望通りかと。 update testb set nswer = coalesce((select coalesce(test1, 0)+coalesce(test2, 0) from testdb where 条件), 0);

sara555
質問者

お礼

うまく出来ました。 有難うございました。

その他の回答 (1)

回答No.1

test1もしくはtest2がnull値のとき、test1+test2の結果もnull値になるので、coalesce(test1+test2, 0)は 0 になります。 よって、↓が正解。 select coalesce(test1, 0)+coalesce(test2, 0) from testdb;

sara555
質問者

補足

回答有難うございます。 わかり易い回答有難うございます。 1つ良ければ、教えていただきたいのですが、 update testb set nswer = (select coalesce(test1, 0)+coalesce(test2, 0) from testdb where 条件) ; とした場合、testdbで条件に該当がないレコードが あった場合は、null値を0表示にするのは、 不可能なのでしょうか?

関連するQ&A