现有三个逗号拼接的字符串:A:'86,8611,8612,8613' B: '86,8612' C:‘8612,8614’
其中A完全包含B ,
A不完全包含C,
使用如下函数后
select testSplit(A,B) from dual; --结果为1 即:完全包含
select testSplit(A,C) from dual; --结果为0 即:不完全包含
当您需要处理两个类似此情况的字符串时,可以使用如下Oracle自定义函数:
create or replace function testSplit(v_a varchar2, v_b varchar2)
return number ascounta number;
countb number;
countc number;
Begin
counta := 0;
countb := 0;
countc := 0;
select count(1)
into counta
from (SELECT REGEXP_SUBSTR(v_a, '[^,]+', 1, rownum) deptida
FROM DUAL
CONNECT BY ROWNUM <=
LENGTH(v_a) - LENGTH(REPLACE(v_a, ',', '')) + 1)