sql中的iif语句详解

  • Post author:
  • Post category:其他


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 版权协议,转载请附上原文出处链接和本声明。