테이블 비교 (WITH, MINUS, UNION ALL)

Oracle 2014. 8. 28. 09:08

서로 다른 계정에 테이블을 동기화하려고 하는데 사전에 차이점을 확인하기 위해서 다음 링크에 내용을 참조함


http://blog.naver.com/hell0803/40169542224

(SELECT * FROM 테이블A
    MINUS
SELECT * FROM 테이블B)
    UNION ALL
(SELECT * FROM 테이블B
    MINUS
SELECT * FROM 테이블A)

이때 SELECT 내에 조건절을 좀 복잡하게 하니 오류가 발생...
대책이 없어서 WITH를 이용하기로 함. 미리 AA와 BB로 정의하고 하기에서 MINUS, UNION ALL 함

 


http://blog.naver.com/knight841/150171546962

WITH AA AS
(SELECT ~ FROM ~ WHERE ~ ORDER BY ~),
BB AS
(SELECT ~ FROM ~ WHERE ~ ORDERY BY ~)
(SELECT * FROM AA
    MINUS
SELECT * FROM BB)
    UNION ALL
(SELECT * FROM BB
    MINUS
SELECT * FROM AA)

A에서 B를 MINUS한 결과와 B에서 A를 MINUS한 결과를 엑셀로 합친것과
UNION ALL로 합친 결과를 엑셀로 다운로드한 결과가 차이가 나서 다음 링크에서 MINUS, UNION ALL을 참고함

http://blog.naver.com/yysvip/220100219038