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 费用
如同不太直观,不晓得有没有其它
步骤
case when ....then else end
例:select id,case when bz='1' then xx when bz='2' then yy else zz end as tt from xxx
那MID,LEFT等呢?在SQL中怎么用?
MID 便是 SQL 里的substring
LEFT 便是 SQL 里的 LEFT
比方 substring(字段,开始位置,取多少长度)
left(字段,取多少长度)
SUBSTRING ( expression , start , length )
参数
expression
是字符串、二进制字符串、text、image、列或包括列的
抒发式 。不要
使用包括聚合函数的
抒发式 。
start
是一个整数,指定子串的开始位置 。
length
是一个整数,指定子串的长度(要返回的字符数或字节数) 。
LEFT
返回从字符串左边开始指定个数的字符 。
语法
LEFT ( character_expression , integer_expression )
参数
character_expression
字符或二进制数据
抒发式 。character_expression
可以是常量、变量或列 。character_expression 必须是
可以隐式地转换为 varchar 的数据类型 。不然,请
使用 CAST 函数显式转换 character_expression 。
integer_expression
是正整数 。假如 integer_expression 为负,则返回空字符串 。
返回类型
varchar