sql中的iif语句详解

【字号: 日期:2023-07-19浏览:22作者:雯心
IIf返回由逻辑测试确定的两个数值或字符串值之一。 语法数字IIf(«LogicalExpression»,«NumericExpression1»,«NumericExpression2») 如果«LogicalExpression»取值为TRUE,则此函数返回«NumericExpression1»,否则,返回«NumericExpression2»。字符串IIf(«LogicalExpression»,«StringExpression1»,«StringExpression2»);如果«LogicalExpression»取值为TRUE,则此函数返回«StringExpression1»,否则,返回«StringExpression2»。 注释只有当«LogicalExpression»的值为零时,才认为该表达式是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里的substringLEFT就是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
相关文章: