Oracle
Oracle EXISTS 서브쿼리 - 존재하는지 안하는지 확인하는 방법
나는아이스크림
2021. 5. 24. 12:00
728x90
Oracle 에서 해당 조건을 만족하는 행이 있는지 없는지 확인하기 위해 EXISTS 라는 서브쿼리가 있다
예를 들면
선수정보를 가지고 있는 PLAYER 라는 테이블이 있다
PLAYER_ID |
PLAYER_POSITION |
TEAM_ID |
PLAYER
TEAM_ID 가 K02 이고 PLAYER_POSITION 이 GK 인 선수를 조회하고 싶다는 쿼리를 작성해 보자
SELECT *
FROM PLAYER P1
WHERE P1.TEAM_ID = 'K02'
AND EXISTS (
SELECT 1
FROM PLAYER P2
WHERE P1.TEAM_ID = P2.TEAM_ID AND P2.POSITION = 'GK'
);
EXISTS 는 무조건 서브쿼리로 작성해야한다
또한 메인쿼리에서 사용한 컬럼을 그대로 사용할 수 있다
서브쿼리를 만족하는 행이 하나라도 있다면 조회함으로
서브쿼리의 SELECT 는 1로 조회해도 괜찮다
또한 EXISTS의 반대인 NOT EXISTS도 사용하여 포함하지 않는 행을 구할 수 있다
728x90
728x90