按类别分组

时间:2018-09-20 10:22:00

标签: sql oracle

我有一个名为data的表,该表的一列为empid 从生产中选择类别

injectedProp

在此数据的前两位数字中提到了一个部门。示例50是一个部门51是另一个部门,我想按以下格式在Oracle SQL查询中按ID方式拆分ID部门

Empid
------
50011
50012
51011
52013
50014
55015
55016

1 个答案:

答案 0 :(得分:2)

一种方法通过row_number()使用条件聚合:

select max(case when empid like '50%' then empid else 0 end) as dept0,
       max(case when empid like '51%' then empid else 0 end) as dept1,
       max(case when empid like '53%' then empid else 0 end) as dept3,
       max(case when empid like '54%' then empid else 0 end) as dept4,
       max(case when empid like '55%' then empid else 0 end) as dept5
from (select t.*,
             row_number() over (partition by substr(empid, 1, 2) order by empid) as seqnum
      from t
     ) t
group by seqnum;