请问怎么比较2个字符串是否相等现在有2个字符串一个是AA,BB,CC,另外一个是CC,BB,AA,这样的字符串就是
请问怎么比较2个字符串是否相等
现在有2个字符串
一个是"AA,BB,CC",另外一个是"CC,BB,AA",这样的字符串就是相等的,虽然顺序不一样,不知道ORACLE中怎么实现这个东西。 Oracle
[解决办法]
可分拆后为结果集再比较
参照
http://blog.csdn.net/roy_88/article/details/6930577
[解决办法]
with t as
(select 'AA,BB,CC' a, 'CC,BB,AA' b
from dual
union all
select 'AA1,BB,CC,D' a, 'CC,BB,AA2,D' b
from dual
union all
select 'AA2,BB' a, 'AA2,BB,D' b from dual)
select t.a,
t.b,
decode(listagg(str1) within group(order by str1),
listagg(str2) within group(order by str2),
1,
0) flag
from (select distinct t.a,
t.b,
regexp_substr(t.a, '[^,]+', 1, level) str1,
regexp_substr(t.b, '[^,]+', 1, level) str2
from t
connect by level <=
greatest(regexp_count(t.a, ','), regexp_count(t.b, ',')) + 1) t
group by t.a, t.b;
