sql - SQL - 将记录转换为列
问题描述
我有一个这样的表:区间类 01-02 class1 02-03 class2 03-04 class1 04-05 class2 05-06 class1
我想要这样的结果
class1 class2
01-02 02-03
03-04 04-05
05-06 NULL
第一行是列名
非常感谢 !
解决方案
您可以按类枚举行,然后使用条件聚合:
select max(case when class = 'class1' then interval end) as class1,
max(case when class = 'class2' then interval end) as class2
from (select t.*,
row_number() over (partition by class order by interval) as seqnum
from t
) t
group by seqnum;
推荐阅读
- node.js - 我可以使用 MongoDB 模式模型来定义 IndexedDB 索引吗?
- javascript - 使用 onclick 事件传递参数
- sql - 如何获得在 CTE 中生成的随机数不会在 JOIN 中更改?
- html - css媒体不工作,是什么问题?
- android - 使用 Kotlin 在 .ics 文件中查找一行
- ios - 如何在 iOS 上将应用程序的使用限制在一台设备上
- c++ - 网站 coderbyte 上的“gets(stdin)”是怎么回事?
- docker-registry - 如何使用 HTTP API v2 获取清单?
- ios - UIPasteboard 无法多次复制具有到期时间的文本
- c# - 使用带有代码优先的实体框架,没有自动增量