1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| with data as ( select 1 as nsq, '18|28' as to_check from dual
union
select 2 as nsq, '7|34' as to_check from dual
union
select 3 as nsq, '8|10|28' from dual
)
, checker as (
select d.nsq, splitted.value from data d,
lateral (
SELECT REGEXP_SUBSTR(d.to_check, '[^|]+', 1, LEVEL) AS value FROM dual
CONNECT BY REGEXP_SUBSTR(d.to_check, '[^|]+', 1, LEVEL) IS NOT NULL
) splitted
)
select distinct nsq from checker where value not in (
SELECT REGEXP_SUBSTR('18|28|38|48', '[^|]+', 1, LEVEL) AS value FROM dual
CONNECT BY REGEXP_SUBSTR('18|28|38|48', '[^|]+', 1, LEVEL) IS NOT NULL
); |
Partager