今天写码的时候,遇到了字段相加后为null的问题,主要是忘记了
在数据库中,任意值与null相加结果都为null
我使用的是sqlserver数据库,既然知道了结果,那么下一步判定不为空不就解决了么?
事实上还是踩坑了,在写判定的时候我是这么写的
(IIF(companySum<> NULL,companySum,0) + IIF(personalSum <> NULL,personalSum,0)) AS ssPfSum,
乍一看,似乎没有问题,可是弄了半天结果全是0,这下不是null了,可是,前面的结果明明是null!!!
最后换成了 IS NOT NULL才算是解决问题。
更换后结果如下
(IIF(companySum IS NOT NULL,companySum,0) + IIF(personalSum IS NOT NULL,personalSum,0)) AS ssPfSum
以后得慎重使用 <> 做判定 ,判断为空的话 还是优先使用 IS NOT NULL