我的表格数据:
Empcode Empname COmpany Department Question Scale
1001 ABC Comp1 IT Development Opportunities 50
1001 ABC Comp1 IT Goals and Targets Set 30
1001 ABC Comp1 IT Feedback and Coaching 10
1002 XYZ Comp1 IT Goals and Targets Set 60
1002 XYZ Comp1 IT Feedback and Coaching 70
查询我尝试的内容:
DECLARE @cols AS NVARCHAR(MAX)
DECLARE @query AS NVARCHAR(MAX)
SELECT @cols = STUFF((SELECT distinct ',' + QUOTENAME(Question)
from TmpTest1
FOR XML PATH(''), TYPE
).value('.', 'NVARCHAR(MAX)')
,1,1,'')
set @query = 'SELECT Empcode,Empname,Company,Department,' + @cols + '
from
(
select *
from TmpTest1
) x
pivot
(
max(scale)
for Question in (' + @cols + ')
) p '
execute(@query)
它正在运作,但我不想使用execute(@query)
。
我想要一个内联查询。
答案 0 :(得分:0)
您应该仅将PIVOT
与精确的结果字段列表一起使用。 (据我所知,PIVOT
没有动态版本)
如果您有动态字段列表,则必须使用动态查询。
如果您不想使用EXEC,可以使用 sp_executesql ,但查询应该是动态的。