sum() 函数为空时怎么办?
MySQL:
前情提示:今天一个mysql 的统计函数老报错,提示:
这个问题一看就是统计给返回null 了 ,而我想要的是int ,这个发生在sum函数上 经常会遇到 ,一般是查询结果为空时进行sum统计条数会返回结果 null,今天贴出解决方案 ,防止以后忘了,处理这个问题 ,mysql给出了三个解决方案:
1.使用 IFNULL(expr1,expr2)函数
2. 使用COALESCE(value,…) 函数
3.使用 case when 函数进行判断
Oracle:
1、nvl(value1,value2)
这个函数的意思是如果value1的值为null,那么函数返回value2的值 ,如果value1不为空,那么就返回value1的值。
需要注意的是value1和value2要保持字段类型相同。2、nvl2(value1,value2,value3)
这个函数的意思是如果value1的值为null 函数返回value3 否则函数返回value2 也就是说函数永远不会返回value1
注意的是参数value2 value3可以是除了LONG类型之外的任意数据类型。3、NULLIF函数的格式如下:
NULLIF(expr1,expr2),含义是:如果第一个参数的值等于第二个参数的值则返回空,否则返回第一个值。
以上所述是小编给大家介绍的SQL中ISNULL函数使用介绍,希望对大家有所帮助。在此也非常感谢大家对脚本之家网站的支持!
SQL Server中的isnull()函数:
isnull(value1,value2)
1、value1与value2的数据类型必须一致。
2、如果value1的值不为null,结果返回value1。
3、如果value1为null,结果返回vaule2的值。vaule2是你设定的值。
如果在select中就是isnull可以判断是否是null,如果是给个默认值,isnull("字段名","设定默认的数据")
例如:select isnull(分数,0) from xuesheng where name='张三' 在表xuesheng中,字段分数如果为空,结果输出0。如果不为空,输出字段分数的值。
在sql server中字段为空的写法,select name from A where name is null/is not null
。而不是name=null、name=' '。