我有一张像
这样的表格CId| RId| No
---+----+----
1| 10| 100
1| 20| 20
1| 30| 10
2| 10| 200
2| 30| 20
3| 40| 25
这里,RId代表“NoToAttend”(10),“NoNotToAttend”(20),“NoWait”(30),“备份”(40)等......
我需要一个看起来像
的结果表Cid| "NoToAttend"| "NoNotToAttend"| "NoWait"| "Backup"
---+--------------+------------------+---------+----------
1| 100| 20| null|
2| 200| null| 20| null
3| null| null| null| 25
我不确定如何使用PIVOT。需要帮助
答案 0 :(得分:1)
您可以使用PIVOT功能,只需为列添加别名:
SELECT pvt.CID,
[NoToAttend] = pvt.[10],
[NoNotToAttend] = pvt.[20],
[NoWait] = pvt.[30],
[Backup] = pvt.[40]
FROM T
PIVOT
( SUM([No])
FOR RID IN ([10], [20, [30], [40])
) pvt;