首页 > 解决方案 > 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

第一行是列名

非常感谢 !

标签: sqlpivotrows

解决方案


您可以按类枚举行,然后使用条件聚合:

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;

推荐阅读