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

 

语法

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值