在Access中可以用sum(total)/iif(Sum(Number)=0,1,sum(Number)) as price from warestock 的语句,在SqlServer2000中总是说iif不是可以识别的函数,应该怎么写

解决方案 »

  1.   

    SQL Server 支持 IIf 的啊:
    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")
      

  2.   

    胜天进销存里的 SQL 吧
    关注一下