-
Oracle EXISTS 서브쿼리 - 존재하는지 안하는지 확인하는 방법Oracle 2021. 5. 24. 12:00728x90
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도 사용하여 포함하지 않는 행을 구할 수 있다
728x90728x90'Oracle' 카테고리의 다른 글
[Oracle] 컬럼명으로 테이블 찾기 (4) 2021.07.23 RANK, DENSE_RANK 함수 (0) 2021.05.24 CASE - 값에 따라 다르게 SELECT 문 만드는 법 (0) 2021.05.21 DATE Type Select 해서 다른 테이블에 Insert 하기 (0) 2021.03.02