次の表を想定してみましょう(例えば、いくつかの内部結合ステートメントの結果):
_id | column_1 | column_2
------------------------
1 | 1 |
2 | 2 | 2
3 | | 3
_
たとえば、次のステートメントから取得できます。
_select a.id, t1.column_1, t2.column_2
from a
left join t1 on a.id = t1.id
left join t2 on a.id = t2.id
_
ここで、次のようにt1.column_1とt2.column_2を合計したい場合
_select
a.id,
t1.column_1,
t2.column_2,
(t1.column_1 + t2.column_2) as cumulated
from a
left join t1 on a.id = t1.id
left join t2 on a.id = t2.id
_
Reslutは次のようになります。
_id | column_1 | column_2 | cumulated
------------------------------------
1 | 1 | NULL | NULL
2 | 2 | 2 | 4
3 | NULL | 3 | NULL
_
私の質問は基本的に、いくつかの計算を行うためにNULLを0に型キャストする方法はありますか?
CONVERT(t1.column_1, SIGNED)
とCAST(t1.column_1 as SIGNED)
を試しましたが、NULL
はNULL
のままです。
IFNULL(column, 0)
を使用して、列の値をゼロに変換します。または、COALESCE関数は同じことを行います。ただし、(1)COALESCE
はANSI準拠、IFNULL
は非準拠、(2)COALESCE
は任意の数の列/値であり、渡された最初の非ヌル値を返します。