我是SQL新手,需要一些帮助,可以将给定值的多个结果选择到不同的列中。
我的部分表格看起来像这样 -
DevID ConnID Other Columns ...
D1 Q1
D1 Q1
D1 Q1
D1 Q2
D1 Q2
D1 Q2
D2 Q3
D2 Q3
D2 Q3
D2 Q4
D2 Q4
D2 Q4
... ...
我希望结果SELECT查询为 -
DevID PrimConnID SecConnID OtherColumns ...
D1 Q1 Q2
D2 Q3 Q4
... ... ... ...
这是否可以使用标准SQL? Aplologies如果不清楚 - 我真的是新手。
答案 0 :(得分:-1)
试试这个:
DECLARE @cols AS NVARCHAR(MAX),
@query AS NVARCHAR(MAX);
SET @cols = STUFF((SELECT distinct ',' + QUOTENAME(c.ConnID)
FROM #YourTableName c
FOR XML PATH(''), TYPE
).value('.', 'NVARCHAR(MAX)')
,1,1,'')
set @query = 'SELECT DevID, ' + @cols + ' from
(
select DevID
,ConnID
from #YourTableName
) x
pivot
(
max(ConnID)
for ConnID in (' + @cols + ')
) p '
execute(@query)