반응형
오라클에서 일반적으로 조회 시
조회 결과가 없으면 아무 행도 출력되지 않는데
그런 상황에서도 뭔가 값을 조회시키고자 한다면
두가지 방법이 있는데
집계함수(COUNT MAX MIN SUM AVG)를 사용해 출력시키거나
혹은
UNION ALL과 NOT EXISTS를 사용한 출력방법인데
먼저 집계함수를 이용한 출력방법은
데이터타입에 상관 없이 집계함수를 사용해 주면
조회 결과가 없을 경우에도 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
반응형
'SQL > Oracle' 카테고리의 다른 글
오라클 REPLACE 여러개 사용방법 (REGEXP_REPLACE) (0) | 2020.12.02 |
---|---|
오라클 REPLACE 함수 사용방법 (0) | 2020.12.02 |
오라클 EXISTS NOT EXISTS 개념 및 예제 (0) | 2020.11.30 |
오라클 %ROWTYPE %TYPE 개념 및 예제 (0) | 2020.11.26 |
오라클 접속한 계정의 PC명, IP주소 등 세션정보 구하는 방법 (0) | 2020.11.25 |
댓글