代码如下:
declare @sql varchar(8000)
select @sql='35,36,38'
exec ('select * from (select ipv.Name ipvn, ipv.ItemId, ip.Name ipn from Item_Parameter_Value IPV, Item_Parameter IP where ipv.itemId in (' + @sql + ') and ipv.ParameterId=ip.Parameterid)
 a pivot (max(ipvn) for itemid in (' + @sql + ')) b')语法检查时没有问题,但在执行时提示:
消息 102,级别 15,状态 1,第 2 行
'35' 附近有语法错误。求解。。

解决方案 »

  1.   


    declare @sql1 varchar(8000) 
    declare @sql2 varchar(8000) 
    select @sql1='35,36,38',@sql2 = '[35],[36],[38]'
    exec ('select * from (select ipv.Name ipvn, ipv.ItemId, ip.Name ipn from Item_Parameter_Value IPV, Item_Parameter IP where ipv.itemId in (' + @sql1 + ') and ipv.ParameterId=ip.Parameterid) 
    a pivot (max(ipvn) for itemid in (' + @sql2 + ')) b')