WHERE REGEXP_SUBSTR(A.REQ_KEY, '[^_]+', 1, 1) = B.INSPCT_INSTT_CD
AND REGEXP_SUBSTR(A.REQ_KEY, '[^_]+', 1, 2) = B.RECPTN_DE
AND REGEXP_SUBSTR(A.REQ_KEY, '[^_]+', 1, 3) = B.RECPTN_NO
AND REGEXP_SUBSTR(A.REQ_KEY, '[^_]+', 1, 4) = B.INSPCT_ODR
AND REGEXP_SUBSTR(A.REQ_KEY, '[^_]+', 1, 5) = B.DRFT_ODR
구문에 이런식으로 잘라서 조인을 시켜서 쿼리 속도가 느린것 같은데...저 키값을 컬럼을 새로 만들어서 넣어주는것 말고는 해결방안이 없을까요?!
양쪽 컬럼에 가공이 없다면? 양방향 조인이 가능합니다.
A -> B 또는 B -> A
어떤 방향의 조인이 더 유리할지? 더 유리한 쪽 조인을 선택합니다.
위의 경우엔 A 에 가공이 있어 A -> B 로 조인 방향이 고정됩니다.
A -> B 가 유리하다면 문제 없습니다.
B -> A 가 유리하다면 조건을 반대로 바꾸면 됩니다.
WHERE a.req_key = b.inspct_instt_cd ||'_'|| b.recptn_de ||'_'|| b.recptn_no ||'_'|| b.inspct_odr ||'_'|| b.drft_odr
물론 a 와 b 양쪽 다 적절한 인덱스가 존재해야 합니다.