ID grp find
534-1 A OK
534-1 A Good
534-1 B Good
534-1 C OK
534-2 A AVERAGE
我想使用pivot显示上表,它应该像这样显示上表中的所有值
ID A B C
534-1 OK Good OK
534-1 Good NULL NULL
534-2 Average NULL NULL
我正在使用以下查询
select *
from
#temp1
pivot(MAX(find)
for grp in ([A]
,[B]
,[C])) pvt
但是,我得到了以下输出,这会遗漏534-1
的另一个值。
ID A B C
534-1 OK Good OK
534-2 Average NULL NULL
任何人都知道我在这里缺少什么?
答案 0 :(得分:3)
请尝试:
select ID,[A],[B],[C]
from(
select *,row_number() over (partition by grp order by grp) Col from #temp1
)x pivot
(MAX(find)
for grp in ([A]
,[B]
,[C])) as y