我目前正在运行SQL Server 2008并尝试获取以下子查询数据:
ID | Field Name | Field Selection
1 | Rating 1 | Good
1 | Rating 2 | Good
1 | Rating 3 | Bad
2 | Rating 1 | OK
根据ID列分组为一行:
ID | Rating 1 | Rating 2 | Rating 3
1 | Good | Good | Bad
2 | OK | NULL | NULL
这可能吗?提前谢谢!
干杯, 硅
答案 0 :(得分:2)
您可以使用SQL Server pivot子句:
select
p.*
from Table1
pivot(
max([Field Selection])
for [Field Name] in ([Rating 1], [Rating 2], [Rating 3])
) as p
或者您可以手动转动:
select
ID,
max(case when [Field Name] = 'Rating 1' then [Field Selection] end) as [Rating 1],
max(case when [Field Name] = 'Rating 2' then [Field Selection] end) as [Rating 2],
max(case when [Field Name] = 'Rating 3' then [Field Selection] end) as [Rating 3]
from Table1
group by ID
<强> sql fiddle demo 强>