将行转换为列sql

时间:2013-12-05 12:57:26

标签: sql tsql pivot

我有一张像

这样的表格
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。需要帮助

1 个答案:

答案 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;
相关问题