1.情景展示
两数相加,一个字段里有值,一个字段没值,为null,二者相加的结果为null。
2.原因分析
在SQL的语法中,数值+null=null,而不是数值+null=数值本身。
以数值字段求和为例,在mysql中,仅在所有行数据都不为null时进行求和运算,否则直接返回null。
3.解决方案
加非null判断,并给予默认值,让其符合加减乘除运算。
mysql:使用ifnull(字段,默认值)
oracle:使用NVL(字段,默认值)
两数相加,一个字段里有值,一个字段没值,为null,二者相加的结果为null。
在SQL的语法中,数值+null=null,而不是数值+null=数值本身。
以数值字段求和为例,在mysql中,仅在所有行数据都不为null时进行求和运算,否则直接返回null。
加非null判断,并给予默认值,让其符合加减乘除运算。
mysql:使用ifnull(字段,默认值)
oracle:使用NVL(字段,默认值)