我有一个名为class_time的列,该列具有将数据存储为的字符串格式
0730PM:0600PM:0800PM
如何使用oracle sql查询以升序方式获取此列数据
0600PM:0730PM:0800PM
例如:
SQL> with test (id, col) as
2 (select 1, '0730PM:0600PM:0800PM' from dual union all
3 select 2, '0400PM:0300AM:0200AM' from dual
4 ),
5 temp as
6 (select id,
7 regexp_substr(col, '[^:]+', 1, column_value) val
8 from test cross join table(cast(multiset(select level from dual
9 connect by level <= regexp_count(col, ':') + 1
10 ) as sys.odcinumberlist))
11 )
12 select id,
13 listagg(val, ':') within group (order by val) result
14 from temp
15 group by id;
ID RESULT
---------- ------------------------------
1 0600PM:0730PM:0800PM
2 0200AM:0300AM:0400PM
SQL>