1. ホーム
  2. sql

[解決済み] MySQLの NULLを0に型変換する

2023-04-27 02:47:50

質問

次のような表(例えば、いくつかの内部結合文の結果)があるとします。

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

レスルートは以下のようになります。

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関数でも同じことができます。 COALESCE(column, 0) ただし

  1. COALESCE は ANSI 準拠です。 IFNULL
  2. COALESCE は任意の数のカラム/値を受け取り、渡された最初の非NULL値を返します。