CleverCode最近在导出报表的时候,在整数做减法的时候,发现整数减去null得到是null。这是一个细节问题,希望大家以后注意。
1 表中的数据
total,used都是整形,允许为空。
2 有问题的运算语句
减法问题
select
id,
total,
used,
(total - used) as have
from test_table
3 正确的写法
使用ifnull,来处理null。
select
id,
ifnull(total,0) as total,
ifnull(used,0) as used,
(ifnull(total,0) - ifnull(used,0)) as have
from test_table