第 1 行: '=' 附近有语法错误。

yybird87 2008-02-26 04:29:42
SELECT DISTINCT sserver,count(id) as t FROM (SELECT a.id,iif(right(left(a.sserver,3),1)='[',left(a.sserver,2),iif(right(left(a.sserver,4),1)='[',left(a.sserver,3),left(a.sserver,4))) AS sserver FROM list as a WHERE isSold=0) GROUP BY sserver ORDER BY sserver


在ACCESS的时候没错! 到sql server里面就报错了

第 1 行: '=' 附近有语法错误。
...全文
119 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
ojuju10 2008-02-26
  • 打赏
  • 举报
回复
Mssql 不支持IIf,改用别的语法吧
dawugui 2008-02-26
  • 打赏
  • 举报
回复
你的逻辑没看懂.

帮顶.
dawugui 2008-02-26
  • 打赏
  • 举报
回复
你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")

chuifengde 2008-02-26
  • 打赏
  • 举报
回复
--access中的iif相当于sql中的case when
SELECT DISTINCT sserver,count(id) as t
FROM
(SELECT a.id,CASE WHEN substring(a.sserver,3,1)='[' THEN left(a.sserver,2) ELSE CASE WHEN substring(a.sserver,4,1)='[' THEN left(a.sserver,3) ELSE left(a.sserver,4) END END AS sserver
FROM list as a
WHERE isSold=0) aa
GROUP BY sserver ORDER BY sserver
toddzst 2008-02-26
  • 打赏
  • 举报
回复
iif是Access数据库中的,SQL中当然有问题,因为它没有,在SQL中可以用case when代替
gahade 2008-02-26
  • 打赏
  • 举报
回复
貌似楼主的需求可以用case when来实现

iif没用过
pt1314917 2008-02-26
  • 打赏
  • 举报
回复
iif(right(left(a.sserver,3),1)='['

这什么语言来的?
kelph 2008-02-26
  • 打赏
  • 举报
回复
sqlserver不支持iif
michaelgy 2008-02-26
  • 打赏
  • 举报
回复
老乌龟把 MDX 也拉出来了 节棍!!
yinzhen 2008-02-26
  • 打赏
  • 举报
回复
用Case when 就可以了
xp1056 2008-02-26
  • 打赏
  • 举报
回复
UP

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧