sql - 透视/取消透视 SQL 结果集列名到单独的列
问题描述
我有一个类似这样的结果集:
用户名 | 生日 | 性别 |
---|---|---|
汤姆 | 1月23日 | 男性 |
我想把它转换成这样的东西:
姓名 | 价值 |
---|---|
用户名 | 汤姆 |
生日 | 1月23日 |
性别 | 男性 |
有人告诉我 Pivot/Unpivot 是我正在寻找的,但我找不到任何有关提取列名的信息。
有没有办法做到这一点?
解决方案
您需要使用 unpivot 子句,如下所示:
select *
from Your_Table t
unpivot (
value for name in (
Username as 'Username'
, Birthday as 'Birthday'
, Gender as 'Gender'
)
)
;
推荐阅读
- python - 生成最多 d 个不匹配的所有排列
- python - Python 请求:下载数据:image/jpeg;base64
- python - Python subprocess.communicate stderrdata 不打印
- mesh - 从非结构化网格重采样标量场到矩形网格
- javascript - XMLHttpRequest 意外返回通信错误
- mongodb - Mongodb聚合,将子文档数组转换为单个对象
- node.js - pdf中的数字签名
- laravel - Laravel 使用身份验证用户绑定类
- google-api - 尝试使用 Gmail API 自动执行任务
- javascript - 使用外部 KML 数据将搜索(地点)添加到现有地图