sql - 旋转单行

标签 sql sql-server ms-access pivot

我对使用 pivot 有点陌生。我怎样才能从这个记录中旋转这个记录:

P1AVERAGE    P2AVERAGE    P3AVERAGE   -> column name
1.25         1.50         1.75

为此:

AVERAGENAME    AVERAGESCORE
p1Average      1.25
p2Average      1.50
p3Average      1.75

我同时使用 SQL Server 和 MS Access 2007。

最佳答案

您要尝试做的是 UNPIVOT 而不是 PIVOT,它使列变回行,它与数据透视相反。

对于 SQL Server,使用 UNPIVOT表运算符:

SELECT *
FROM tablename AS t
UNPIVOT
(
  AVERAGESCORE
  FOR plaveragename IN([P1AVERAGE], [P2AVERAGE], [P3AVERAGE])
) AS u;

在此处查看实际效果:

关于sql - 旋转单行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16612878/

相关文章:

ms-access - MS Access 2007 使用 VBA 打开特定记录的单独表单

mysql - 如何在过程中创建索引

sql - 有没有办法删除已经绑定(bind)到存储过程的用户定义表类型?

sql-server - 如何记录 SQL Server 中所做的每个数据更改?

sql-server - 使用内联函数在 SSRS 中创建数据集

c# - 如何使用数组值更新数据库中的列?

mysql - 从 SQL 到 HQL 连接和删除

sql - Mariadb:在 WHERE 子句中使用窗口函数 LAG 的结果

sql - 如何使用SQL计算时间序列数据的ADI和COV?

sql - 如何在 Access 2007 中查询截止日期