这段sql语句怎么报错了啊?

a724599216 2009-04-16 06:15:59
declare @s nvarchar(1000)
select @s= 'select itemId as itemId'
select @s = @s + ',sum(case when itemName=''' + cast(itemName as varchar) + ''' then result end) as ' + itemName from HC_Item group by itemName
select @s = @s + ' from HC_Item by itemName'
exec(@s)


---
Msg 102, Level 15, State 1, Line 1
'-' 附近有语法错误。
...全文
92 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
htl258_Tony 2009-04-16
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 josy 的回复:]
SQL codedeclare @s nvarchar(1000)
select @s= 'select itemId as itemId'
select @s = @s + ',sum(case when itemName=''' + cast(itemName as varchar) + ''' then result end) as [' + itemName+']' from HC_Item group by itemName
select @s = @s + ' from HC_Item by itemName'
exec(@s)


字段名称含有一些算术符合,加个[]
[/Quote]正解。
ks_reny 2009-04-16
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 josy 的回复:]
SQL codedeclare @s nvarchar(1000)
select @s= 'select itemId as itemId'
select @s = @s + ',sum(case when itemName=''' + cast(itemName as varchar) + ''' then result end) as [' + itemName+']' from HC_Item group by itemName
select @s = @s + ' from HC_Item by itemName'
exec(@s)


字段名称含有一些算术符合,加个[]
[/Quote]
正解,不过也可以加‘’。
  • 打赏
  • 举报
回复
5楼
  • 打赏
  • 举报
回复
from HC_Item by itemName

by出问题了吧,把by去掉试试
ws_hgo 2009-04-16
  • 打赏
  • 举报
回复

declare @s nvarchar(1000)
select @s= 'select itemId as itemId'
select @s = @s + ',sum(case when itemName=''' + cast(itemName as varchar) + ''' then result end) as itemName' from HC_Item group by itemName
select @s = @s + ' from HC_Item by itemName'
exec(@s)
-晴天 2009-04-16
  • 打赏
  • 举报
回复
declare @s nvarchar(1000)
select @s= 'select itemId as itemId'
select @s = @s + ',sum(case when itemName=''' + cast(itemName as varchar) + ''' then result end) as [' + itemName from HC_Item group by itemName
select @s = @s + '] from HC_Item by itemName'
exec(@s)
百年树人 2009-04-16
  • 打赏
  • 举报
回复
declare @s nvarchar(1000)
select @s= 'select itemId as itemId'
select @s = @s + ',sum(case when itemName=''' + cast(itemName as varchar) + ''' then result end) as [' + itemName+']' from HC_Item group by itemName
select @s = @s + ' from HC_Item by itemName'
exec(@s)

字段名称含有一些算术符合,加个[]
-晴天 2009-04-16
  • 打赏
  • 举报
回复
declare @s nvarchar(1000)
select @s= 'select itemId as itemId'
select @s = @s + ',sum(case when itemName=''' + cast(itemName as varchar) + ''' then result end) as itemName from HC_Item group by itemName'
exec(@s)
a724599216 2009-04-16
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 josy 的回复:]
declare @s nvarchar(1000)
select @s= 'select itemId as itemId'
select @s = @s + ',sum(case when itemName=''' + cast(itemName as varchar) + ''' then result end) as ' + itemName from HC_Item group by itemName
select @s = @s + ' from HC_Item by itemName'

print @s

exec(@s)

把@s打印出来看看语句有什么问题
[/Quote]
select itemId as itemId,sum(case when itemName='ALT' then result end) as ALT,sum(case when itemName='B2-微球蛋白' then result end) as B2-微球蛋白,sum(case when itemName='B超' then result end) as B超,sum(case when itemName='FEV1(%)' then result end) as FEV1(%),sum(case when itemName='FEV1/FVC(%)' then result end) as FEV1/FVC(%),sum(case when itemName='FVC(%)' then result end) as FVC(%),sum(case when itemName='HAV-IgM' then result end) as HAV-IgM,sum(case when itemName='HBcAb' then result end) as HBcAb,sum(case when itemName='HBeAb' then result end) as HBeAb,sum(case when itemName='HBeAg' then result end) as HBeAg,sum(case when itemName='HBsAb' then result end) as HBsAb,sum(case when itemName='HBsAg' then result end) as HBsAg,sum(case when itemName='HCT' then result end) as HCT,sum(case when itemName='HGB(g/L)' then result end) as HGB(g/L),sum(case when itemName='MCH(pg)' then result end) as MCH(pg),sum(case when itemName='MCHC(g/L)' then result end) as MCHC(g/L),sum(case when itemName='MCV(fl)' t
Msg 102, Level 15, State 1, Line 1
'-' 附近有语法错误。
百年树人 2009-04-16
  • 打赏
  • 举报
回复
declare @s nvarchar(1000)
select @s= 'select itemId as itemId'
select @s = @s + ',sum(case when itemName=''' + cast(itemName as varchar) + ''' then result end) as ' + itemName from HC_Item group by itemName
select @s = @s + ' from HC_Item by itemName'

print @s

exec(@s)

把@s打印出来看看语句有什么问题

34,837

社区成员

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

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