拼接字符串解析

SELECT REGEXP_SUBSTR (STR, '[^-]+',1,1,'i') AS FILTER_1  
       ,REGEXP_SUBSTR (STR, '[^-]+',1,2,'i') AS FILTER_2             
       ,REGEXP_SUBSTR (STR, '[^-]+',1,3,'i') AS FILTER_3             
       ,REGEXP_SUBSTR (STR, '[^-]+',1,4,'i') AS FILTER_4             
       ,REPLACE( DECODE(REGEXP_SUBSTR (STR, '[^-]+',1,5,'i'),'NULL','',REGEXP_SUBSTR (STR, '[^-]+',1,5,'i')) ,'###','-') AS FILTER_REMARK                      
FROM(
        SELECT REGEXP_SUBSTR(V_KEY_IDS, '[^;]+', 1, LEVEL, 'i') AS STR
                              FROM DUAL
                            CONNECT BY LEVEL < =REGEXP_COUNT(V_KEY_IDS, ';')+1
);

举例:V_KEY_IDS=郑州-2022/10/07-2-1-郑州###代理基础利润;郑州-2022/10/07-1-1-郑州###代理达标利润;郑州-2022/10/07-1-1-员工工资

注意:在拼接字符串时,如果有字符串中含有“-”、“;”的注意将其用其他不常用的符号代替(例如“##”),避免被截断

具体使用情景:多个栏位作为筛选条件Group by时,需要这些栏位作为“关键ID”去检索;

当组数过多时,建议使用临时表储存

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值