SQL Pivot表错误使用变量给出语法错误
嗨,我的同事带着这个错误来找我,现在我被迷住了,并试图找出它,希望一些专家能帮助我们! 非常感谢! 当我执行步骤6时,我们得到以下错误:SQL Pivot表错误使用变量给出语法错误,sql,syntax,pivot,Sql,Syntax,Pivot,嗨,我的同事带着这个错误来找我,现在我被迷住了,并试图找出它,希望一些专家能帮助我们! 非常感谢! 当我执行步骤6时,我们得到以下错误: Msg 102, Level 15, State 1, Line 4 Incorrect syntax near '@cols'. 不幸的是,您需要动态SQL来实现这一点 declare @dyn nvarchar(max) set @dyn = 'SELECT * FROM (SELECT * FROM Product) p PIVOT (SUM(QTY
Msg 102, Level 15, State 1, Line 4
Incorrect syntax near '@cols'.
不幸的是,您需要动态SQL来实现这一点
declare @dyn nvarchar(max)
set @dyn = 'SELECT *
FROM (SELECT *
FROM Product) p
PIVOT (SUM(QTY) FOR CUST IN (' + @cols +')) as pvt
Order by Product
'
exec sp_executesql @dyn
@马丁·史密斯将是对的……当你遇到下一个错误时。:-) 至于@cols附近的错误,我认为您可以将整个内容用括号括起来。例如:
select @cols = (
STUFF(( SELECT DISTINCT TOP 100 PERCENT
'],[' + b.Cust
FROM (select top 100 Cust
from tblProduct)b
ORDER BY '],[' + b.Cust
FOR XML PATH('')
), 1, 2, '') + ']'
)
+1用于发布有用的DDL+1是的!我同意马丁的观点!
select @cols = (
STUFF(( SELECT DISTINCT TOP 100 PERCENT
'],[' + b.Cust
FROM (select top 100 Cust
from tblProduct)b
ORDER BY '],[' + b.Cust
FOR XML PATH('')
), 1, 2, '') + ']'
)