Select SUM IIF ISNULL组合用法
SQL中做加法很傻,它认为Null+任何值都是Null
数据库中, 10 +
所以相加之前, 先把
ISNULL() 函数
我们通常使用isnull()或is null在SQL中判断是否为空。当然有ACCESS中还有NZ(),因为nz()是Access的内部函数,不是SQL函数,所以只能在Access内部使用。
可以用ISNULL()判定是否为空并用默认值替换
不是在总和里用ISNULL(), 应该是对每个被加的数都用
Select IIF(ISNULL(a),0,a) + IIF(ISNULL(b),0,b) 这是正确的.
Select IIF(ISNULL(a + b),0,a + b) 这是错误的,
IIF() 函数
根据表达式的值,来返回两部分中的其中一个。
语法
IIf(expr, truepart, falsepart)
IIf 函数的语法含有下面这些命名参数:
部分 描述
expr 必要参数。用来判断真伪的表达式。
truepart 必要参数。如果 expr 为 True,则返回这部分的值或表达式。
falsepart 必要参数。如果 expr 为 False,则返回这部分的值或表达式。
举例来看:
假设我们要从数据表中选出两个字段求和
ACCESS里的用法:
Select IIF(ISNULL(字段1),0,字段1) + IIF(ISNULL(字段2),0,字段2)
SQLserver2000里的用法:
Select ISNULL(字段1, 0) + ISNULL(字段2, 0)
总结一下:
**********************************************
1、空与任何值的算术运算都是空
2、使用isnull()或者is null就可以判断空值;
3、IIf(expr, truepart, falsepart)函数用在这里也非常合适
除非注明,流浪天下 文章均为原创,转载请以链接形式注明出处。查看声明
本文链接地址: https://maie.name/333.html
订阅本站:https://maie.name/feed,打赏:https://maie.name/donation