본문 바로가기
SQL/Oracle

오라클 조회결과 없어도 출력시키는 방법

by wakestand 2020. 12. 1.
반응형

오라클에서 일반적으로 조회 시

조회 결과가 없으면 아무 행도 출력되지 않는데

그런 상황에서도 뭔가 값을 조회시키고자 한다면

 

두가지 방법이 있는데

 

집계함수(COUNT MAX MIN SUM AVG)를 사용해 출력시키거나

혹은

UNION ALL과 NOT EXISTS를 사용한 출력방법인데

 

오라클 EXISTS NOT EXISTS 개념 및 예제

오라클에서 EXISTS와 NOT EXISTS는 WHERE EXISTS (서브쿼리) 방식으로 사용하는데 오라클 서브쿼리 사용방법 및 예제 오라클에서 서브쿼리(Subquery)는 쿼리 안에 쿼리를 넣는다는 말인데 서브쿼리는 SELECT

wakestand.tistory.com

먼저 집계함수를 이용한 출력방법은

데이터타입에 상관 없이 집계함수를 사용해 주면

조회 결과가 없을 경우에도 NULL 혹은 0으로 출력이 된다

 

다음으로 UNION ALL과 NOT EXISTS를 이용한 출력방법은

NOT EXISTS가 조회결과가 없을 때에만

조회를 수행한다는 것을 활용해서

 

동일한 조회 조건을 넣어주고

조회 결과가 있을 때에는 UNION ALL로 합칠 것이 없지만

조회 결과가 없을 경우에는 NOT EXISTS가 동작해서

한 행을 만들어 합쳐주는 방법이 되겠다

 

예제에 사용한 쿼리는 아래와 같다

 

SELECT AVG(ENAME) AS ENAME -- 집계함수를 이용한 출력
  FROM EMP
 WHERE EMPNO = '230'
 ;
 
SELECT EMPNO
  FROM EMP
 WHERE EMPNO = '230'
 
 UNION ALL -- UNION ALL과 NOT EXISTS를 이용한 출력
 
SELECT NULL AS EMPNO
  FROM EMP
 WHERE NOT EXISTS (SELECT EMPNO 
                     FROM EMP 
                    WHERE EMPNO = '230')
   AND ROWNUM = 1
반응형

댓글