Database/SQL
ORACLE 테이블 데이터 비교, 교집합 차집합 데이터 추출
리커니
2019. 9. 24. 17:32
반응형
ORACLE 테이블 데이터 비교, 교집합 차집합
이번 포스팅은 ORACLE 테이블 데이터 비교가 주제입니다.!
같은 포멧의 두 테이블을 비교하거나, SELECT 한 두 SQL문의 데이터를 비교할때 사용됩니다.
같은 데이터 만 추출하기 (교집합) INTERSECT
SELECT *
FROM TABLE_A
INTERSECT
SELECT *
FROM TABLE_B
두 테이블 SQL문 사이에 INTERSECT 가 들어가게 됩니다.
두 테이블의 컬럼이 같고, 같은 데이터 포멧이어야 비교가 가능합니다.
위 테이블의 결과는 처음 테이블(TABLE_A)의 일치하는 데이터 ROW 가 출력이 됩니다.
아래의 예를 보시죠.
SELECT *
FROM (
SELECT '사과'
, '배'
, '오랜지'
FROM SYS.DUAL
UNION ALL
SELECT '딸기'
, '포도'
, '바나나'
FROM SYS.DUAL
)
INTERSECT
SELECT *
FROM (
SELECT '사과'
, '귤'
, '오렌지'
FROM SYS.DUAL
UNION ALL
SELECT '딸기'
, '포도'
, '바나나'
FROM SYS.DUAL
)
첫번째 테이블은
'사과, 배, 오렌지'
'딸기, 포도, 바나나'
2 ROW 가 출력되고
두번째 테이블은
'사과, 귤, 오렌지'
'딸기, 포도, 바나나'
2 ROW가 출력됩니다.
INTERSECT는 교집합이니 '딸기, 포도, 바나나' 1 ROW만 출력이 되겠죠.
다른 데이터 만 추출하기 (차집합) MINUS
SELECT *
FROM TABLE_A
MINUS
SELECT *
FROM TABLE_B
INTERSECT와 같은 형태 입니다.
결과는 반대로, 첫번째 테이블(TABLE_A)의 일치하지 않는 데이터만 출력이 됩니다.
INTERSECT 와 같은 예를 든다면, 출력은
'사과, 배, 오렌지' 가 되겠죠!
INTERSECT 와 MINUS 는 데이터 비교에 많이 사용됩니다.
사용법은 간단하니 유용하게 사용하세욧!
반응형