mysql中sum()求多列的和,错误记录及解决方案

select sum( column1+column2+column3 )  where name='xx' ,
但是当要查询的字段中包含null的话结果会为null,当作一次小记录,提醒自己。

解决方案:

1.如果column1和column2和column3的值都不为NULL,则MySql sum(column1+column2+column3)与sum(column1)+sum(column2)+sum(column3)情况一样

2.如果其中有一个字段的值为NULL则sum(column1+column2+column3)的值为NULL

3.如果不想想这么多,使用ifnull(sum(column1),0)+ifnull(sum(column2),0)+ifnull(sum(column3),0)可一劳永逸,若想进一步对数值类型进行转换来保留两位小数,用法如下cast((1*ifnull(sum(column1),0)+1*ifnull(sum(column2),0)+1*ifnull(sum(column3),0)) as decimal(12,2))

经验节选自:

1.遇见一只小脑斧

2.w1215142854

3.Dongguo丶

感谢以上码主提供的知识!

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值