WEB开发网
开发学院数据库MSSQL Server sql中的iif语句详解 阅读

sql中的iif语句详解

 2007-11-11 12:12:21 来源:WEB开发网   
核心提示:IIf 返回由逻辑测试确定的两个数值或字符串值之一, 语法 数字 IIf(«Logical Expression», «Numeric Expression1», «Numeric Expression2») 如果 «L

  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(WINDOWS平台上强大的数据库平台)中好像没有对应的函数,我用:
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 

Tags:sql iif 语句

编辑录入:coldstar [复制链接] [打 印]
赞助商链接