반응형
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 는 데이터 비교에 많이 사용됩니다.
사용법은 간단하니 유용하게 사용하세욧!
반응형
'Database > SQL' 카테고리의 다른 글
java.sql.SQLSyntaxErrorException: ORA-01745: 호스트/바인드 변수명이 부적합합니다 (0) | 2020.09.02 |
---|---|
mySql, mariaDB 사용자 생성 및 권한 설정 (0) | 2020.08.31 |
Oracle 오라클 행열 변환, 카테시안 조인, CASE문 활용 (0) | 2019.08.30 |
Oralce 오라클 UNIX Timestamp 변환 timestamp to date String (0) | 2019.08.01 |
오라클 형변환 알짜만 빼먹기, TO_NUMBER(), CAST(), TO_CHAR(), TO_DATE() (0) | 2019.07.24 |
댓글