您的位置:首页 > 其它

以特定分割符进行列变行

2016-12-14 21:47 260 查看
SQL> select * from test;

FNAME               H          M

---------- ---------- ----------

李四/王五           3         59
张三/李四           5          2

SQL> with m as(

  2  select regexp_substr(t.fname,'[^/]+',1,level) ffname,t.h,t.m

  3  from test t

  4  connect by level<=length(t.fname)-length(replace(t.fname,'/',''))+1

  5  and prior rowid=rowid

  6  and prior dbms_random.value is not null)

  7  select m.ffname,sum(m.h)+floor(sum(m.m)/60),mod(sum(m.m),60) from m group by m.ffname;

FFNAME               SUM(M.H)+FLOOR(SUM(M.M)/60) MOD(SUM(M.M),60)

-------------------- --------------------------- ----------------

王五                                           3               59

李四                                           9                1

张三                                           5                2
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息