[Oracle] 데이터 존재여부를 확인하는 EXISTS / NOT EXISTS

2020. 12. 9. 13:15
반응형

[Oracle] 데이터 존재여부를 확인하는 EXISTS / NOT EXISTS




데이터 유무 에 따라 특정액션을 취하는 경우가 필요합니다
EXISTS 와 IN 정도로 구분이 가능한데 이번에는 EXISTS 를 사용 하는 방법을 공유 하고자합니다.


EXISTS문 사용법

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
SELECT 컬럼
FROM 테이블
WHERE EXISTS 
(
서브쿼리
);
 
SELECT 컬럼
FROM 테이블
WHERE EXISTS 
(
서브쿼리
);
 
 
cs


EXISTS은 논리연산자 중의 하나로써 조건절로 서브쿼리 형태로만 올 수 있습니다.

EXISTS 예제

1 :N 구조의를 가진 두개의 테이블이 있다는 가정하에 A 테이블 B테이블 에있는 데이터 유무를 판단해보고자 합니다


TABLEB 에 데이터가 있는 TABLEA 데이터 출력

1
2
3
4
5
6
SELECT * FROM TABLEA A
WHERE EXISTS
(
    SELECT * FROM TABLEB B
    WHERE A.PK = B.PK 
)
cs


PK를 공유하고있는 데이터만 출력됩니다.


TABLEB에 데이터가 없는 TABLEA 데이터 출력

1
2
3
4
5
6
SELECT * FROM TABLEA A
WHERE NOT EXISTS
(
    SELECT * FROM TABLEB B
    WHERE A.PK = B.PK 
)
cs

반대로 TABLEB 에 데이터가 없는 TABLEA만 뽑고 싶으시다면 NOT EXISTS를 사용하시면 됩니다.



출저 : https://coding-factory.tistory.com/428

반응형

BELATED ARTICLES

more