by lsg1lsg2 [SQL Query] 오라클 쿼리 다중값 조인 [2012.04.01 17:27:41]
1. 문자열 비교 방식 : 앞뒤로 컴마를 붙여서 비교.
-- 1) LIKE ( ',1,2,' LIKE '%,1,%' )
WHERE ','||b.a2||',' LIKE '%,'||a.a2||',%'
-- 2) INSTR ( INSTR(',1,2,', ',1,') )
WHERE INSTR(','||b.a2||',', ','||a.a2||',') > 0
2. 문자열을 분리된 행 값으로 변환
SELECT REGEXP_SUBSTR(a2, '[^,]'+, 1, LEVEL) a3
FROM (SELECT '1,2' a2 FROM dual)
CONNECT BY LEVEL <= LENGTH(a2) - LENGTH(REPLACE(a2,',')) + 1
;