您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

如何通过MS Access 2007或MS SQL Server 2005中的SQL将字段转换为行

如何通过MS Access 2007或MS SQL Server 2005中的SQL将字段转换为行

使用PIVOT和UNPIVOT

UNPIVOT``PIVOT通过将列旋转为行来执行与几乎相反的操作。假设前面的例子中产生的表存储在数据库pvt,你要旋转的列标识符Emp1Emp2Emp3Emp4,和Emp5成排的值对应于特定供应商。这意味着您必须标识另外两个列。将包含将要旋转的列值(Emp1Emp2…)Employee的列称为 ,将保存当前位于要旋转的列下的值的列称为订单。这些列对应于 pivot_columnvalue_column 分别在Transact- sql定义中。这是查询

--Create the table and insert values as portrayed in the prevIoUs example.
CREATE TABLE pvt (VendorID int, Emp1 int, Emp2 int,
Emp3 int, Emp4 int, Emp5 int)
GO
INSERT INTO pvt VALUES (1,4,3,5,4,4)
INSERT INTO pvt VALUES (2,4,1,5,5,5)
INSERT INTO pvt VALUES (3,4,3,5,4,4)
INSERT INTO pvt VALUES (4,4,2,5,5,4)
INSERT INTO pvt VALUES (5,5,1,5,5,5)
GO
--Unpivot the table.
SELECT VendorID, Employee, Orders
FROM 
   (SELECT VendorID, Emp1, Emp2, Emp3, Emp4, Emp5
   FROM pvt) p
UNPIVOT
   (Orders FOR Employee IN 
      (Emp1, Emp2, Emp3, Emp4, Emp5)
)AS unpvt
GO

这是部分结果集。

VendorID   Employee   Orders
1      Emp1         4
1      Emp2         3
1      Emp3         5
1      Emp4         4
1      Emp5         4
2      Emp1         4
2      Emp2         1
2      Emp3         5
2      Emp4         5
2      Emp5         5
...
Access 2022/1/1 18:52:29 有474人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶