首页 > 解决方案 > 透视/取消透视 SQL 结果集列名到单独的列

问题描述

我有一个类似这样的结果集:

用户名 生日 性别
汤姆 1月23日 男性

我想把它转换成这样的东西:

姓名 价值
用户名 汤姆
生日 1月23日
性别 男性

有人告诉我 Pivot/Unpivot 是我正在寻找的,但我找不到任何有关提取列名的信息。

有没有办法做到这一点?

标签: sqlplsql

解决方案


您需要使用 unpivot 子句,如下所示:

select *
from Your_Table t
unpivot (
 value for name in (
  Username as 'Username'
, Birthday as 'Birthday'
, Gender as 'Gender'
 )
)
;

推荐阅读