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
'-' 附近有语法错误。

解决方案 »

  1.   

    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 @sexec(@s)把@s打印出来看看语句有什么问题
      

  2.   

    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
    '-' 附近有语法错误。
      

  3.   

    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)
      

  4.   

    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)
    字段名称含有一些算术符合,加个[]
      

  5.   

    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)
      

  6.   


    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)
      

  7.   

    from  HC_Item by itemNameby出问题了吧,把by去掉试试