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
'-' 附近有语法错误。
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
'-' 附近有语法错误。
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 @sexec(@s)把@s打印出来看看语句有什么问题
Msg 102, Level 15, State 1, Line 1
'-' 附近有语法错误。
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)
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)
字段名称含有一些算术符合,加个[]
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)
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)