SQL 查询语句 IIF()处理条件判断

来源:互联网 发布:淘宝拍摄多少钱一天 编辑:程序博客网 时间:2024/04/29 21:02
 

语法

IIf(expr,truepart,falsepart)

例子:

‍SELECT iif(选择=-1,"",金额) as 新金额 FROM 表1;已经测试通过! 在ACCESS中,"-1"表示"是","0"表示"否"!

          

IIf
返回由逻辑测试确定的两个数值或字符串值之一。

语法
数字
IIf(Logical EXPression, Numeric Expression1, Numeric Expression2)

如果 Logical Expression 取值为 TRUE,则此函数返回 Numeric Expression1,否则,返回 Numeric Expression2。

字符串
IIf(Logical Expression, String Expression1, String Expression2)

如果 Logical Expression 取值为 TRUE,则此函数返回 String Expression1,否则,返回 String Expression2。

注释
只有当 Logical Expression 的值为零时,才认为该表达式是 FALSE。任何其它值都被解释为 TRUE。
不推荐用 Iif 函数基于搜索条件创建成员的集合。请改用 Filter 函数根据逻辑表达式评估指定集合中的每个成员,然后返回成员的子集合。

示例
数字
如果 Measures.CurrentMember 是空单元,则下面的示例返回 0,否则返回 1:
IIf(IsEmpty(Measures.CurrentMember), 0, 1)

字符串
如果 Measures.CurrentMember 是空单元,则下面的字符串返回字符串 "Yes",否则返回字符串 "No":
IIf(IsEmpty(Measures.CurrentMember), "Yes", "No")

在Access中我可以用IIF函数进行统计汇总,比如,要知道实际应该交费的用户个数:
Select sum(iif(金额>0, 1,0)) as num from 费用
在SQL Server中好像没有对应的函数,我用:
select sum(case when 金额>0 then 1 else 0 end) as num from 费用
好像不太直观,不知道有没有其它方法

段利庆(Lee) QQ;14035344