【发布时间】:2016-09-15 00:00:41
【问题描述】:
我还在oracle中学习正则表达式我卡在中间了,下面是我的示例代码:
with t(val)
as
(
--format: xyz_year_month_date
select 'my_new_table_2015_06_31' from dual
union all
select 'my_new_table_temp_2016_06_31' from dual
)
select reverse(regexp_substr(reverse(val),'[^_]+',1,4)) col4,
reverse(regexp_substr(reverse(val),'[^_]+',1,3)) col3,
reverse(regexp_substr(reverse(val),'[^_]+',1,2)) col2,
reverse(regexp_substr(reverse(val),'[^_]+',1,1)) col1
from t;
Output:
COL4 COL3 COL2 COL1
table 2015 06 31
temp 2016 06 31
Expected output:
COL4 COL3 COL2 COL1
my_new_table 2015 06 31
my_new_table_temp 2016 06 31
提前致谢。
【问题讨论】:
标签: sql regex oracle oracle11g