使用数据透视运算符时,我可以在 IN 子句中传递变量吗
Can I pass Variables inside IN Clause when using pivot operator
我可以在使用 pivot 时在 IN 子句中传递变量吗?我的意思是我该怎么做:
pivot(Sum(Column1) for [Column2] in ([@variable1] , [@variable2] , [@variable3]) ) as pvt
您可以使用动态 SQL:
DECLARE @sql nvarchar(max), @cols nvarchar(max) = '[Column1], [Column2]'
SELECT @sql = 'SELECT *
FROM SomeTable
pivot (
Sum(Column1) for [Column2] in ('+@cols+')
) AS PVT'
EXEC(@sql)
我可以在使用 pivot 时在 IN 子句中传递变量吗?我的意思是我该怎么做:
pivot(Sum(Column1) for [Column2] in ([@variable1] , [@variable2] , [@variable3]) ) as pvt
您可以使用动态 SQL:
DECLARE @sql nvarchar(max), @cols nvarchar(max) = '[Column1], [Column2]'
SELECT @sql = 'SELECT *
FROM SomeTable
pivot (
Sum(Column1) for [Column2] in ('+@cols+')
) AS PVT'
EXEC(@sql)