안녕하세요
SELECT distinct regexp_substr(A.TXT, '[^|]+', 1, LEVEL) TXT
FROM (SELECT 'A|B|C|D' TXT FROM dual) A
CONNECT BY LEVEL <= length(regexp_replace(A.TXT, '[^|]+',''))+1
이런식의 예제를 사용해서 쿼리를 구현했는대요 테이블이 2개(a,b) 가있고
a테이블에 tag 컬럼에 a,b,c,d,e
이런식으로 50 로우정도가나오고
b테이블에 tag 컬럼에 c,d,e,f, 이런식으로 하나에 값이 나옵니다
2개의 테이블에서 tag값을 (,) 로 split 했을때 한개라도 값이 같으면 데이터가 나와야하는 쿼리를 짜고있습니다
필요한데이터는 a 테이블의 값인대 a테이블에서 위에 쿼리를사용하여 split 하면 속도가 너무오래걸립니다
... like로 구현하려고해도 필요한 값이 a테이블에 있는값이라
방법을 못찾겠습니다
도움 주시면 감사하겠습니다
|