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
版权声明:本文为zyf1203原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。