본문 바로가기

IT/오라클

오라클 서브쿼리 (Oracle subquery)



1) 단일

 

SELECT * FROM USERS

WHERE NAME= ( 

            SELECT NAME

            FROM USERS

            WHERE USERNO='1');


2) 다중

 

SELECT * FROM USERS

WHERE NAME IN ( 

            SELECT NAME

            FROM USERS

 

            WHERE USERNO<10);

 

※ 다중행 연산자

 다중행 연산자

설  명 

 예  시

 IN

하나의 결과가 들어 있으면 참

 SELECT * FROM USERS WHERE NAME IN ('관리자','관리자2');

 ANY,SOME

여러개의 결과 중 하나만 

 SELECT * FROM USERS WHERE NAME = ANY ('관리자','관리자2');

 ALL

모든 결과가 일치

 SELECT * FROM USERS WHERE NAME = ALL ('관리자','관리자2');

 EXISTS

 하나의 결과가 들어 있으면 참

 SELECT * FROM USERS 

WHERE EXISTS (SELECT NAME FROM USERS WHERE NAME='관리자3')

 

IN 과 EXIST의 차이점은 EXIST는 ROW가 존재하는지만 확인하고 수행하지 않지만, IN은 실제 존재하는 데이터들의 모든 값까지 확인함.