Oracle 将带逗号字符串转成多行

背景:在做工作流时,需要查询其中一张表的roles字段,并根据此字段作为 in条件 关联查出另外业务表的结果集。

roles字段值:

Oracle 将带逗号字符串转成多行_第1张图片

将它转成多行

Oracle 将带逗号字符串转成多行_第2张图片

--(select roles from AUTH_ACT_DEF_TASK where id= 11007) 这里是需要转换的字段(也就是roles字段),这里我通过sql动态查询出来的
SELECT REGEXP_SUBSTR ((select roles from AUTH_ACT_DEF_TASK where id= 11007), '[^,]+', 1,rownum)
from dual 
connect by rownum< = LENGTH ((select roles from AUTH_ACT_DEF_TASK where id= 11007)) - LENGTH (regexp_replace((select roles from AUTH_ACT_DEF_TASK where id= 11007), ',', ''))+1;

得到转换后的结果集后就可以关联其他业务表做业务了

你可能感兴趣的:(ORACLE)