Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL:将NULL类型转换为0_Sql_Mysql_Casting - Fatal编程技术网

MySQL:将NULL类型转换为0

MySQL:将NULL类型转换为0,sql,mysql,casting,Sql,Mysql,Casting,让我们假设下表(例如,几个内部连接语句的结果): 例如,您可以从以下语句中获得: 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_

让我们假设下表(例如,几个内部连接语句的结果):

例如,您可以从以下语句中获得:

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\u 1,SIGNED)
CAST(t1.column\u 1,SIGNED)
,但是
NULL
保持为
NULL

使用
IFNULL(column,0)
将列值转换为零

或者,COALESCE函数将执行相同的操作:
COALESCE(column,0)
,除了

  • COALESCE
    符合ANSI标准,
    IFNULL
    不符合ANSI标准
  • COALESCE
    接受任意数量的列/值,并将返回传递给它的第一个非空值

  • 而coalesce可以有多个值?是的……因此coalesce(column1,column2,0)将返回这些值中的第一个非null值。记住这是水平的,而不是垂直的。这些列必须属于同一表行。@rexem:谢谢,你这么说太好了。非常感谢@大卫·安德烈:非常感谢。要是我能再投一次票就好了。
    id | column_1 | column_2 | cumulated
    ------------------------------------
     1 |  1       | NULL     | NULL
     2 |  2       | 2        | 4
     3 |  NULL    | 3        | NULL