Oracle2020. 11. 19. 09:18
728x90
반응형
SMALL

 

 

 

쿼리를 하다보면 데이터 값이 전혀 없는 경우가 있다.

이런 경우 강제적으로 0으로 표시해야할 상황이 생긴다.

프로시져에서 이용하거나..서브쿼리에서나..등등..서브쿼리는 CASE WHEN을 써도 되지만..암튼..

이렇게 조건에 맞는 데이터가 없어 no rows selected가 나오는데 데이터가 없을때 0을 리턴하고 싶으면,

SELECT 절에 MAX 함수를 같이 이용하면 나올 수 있다.

 

-- TEST 테이블
COL1 COL2 COL3 COL4
-------------------
a    b    1    2
a    b    1    3
a    b    1    4
a    b    2    7

SQL> SELECT COL1 FROM TEST WHERE COL1 LIKE 'b%';
-----
no rows selected

-- 이럴 경우
SQL> SELECT NVL(MAX(COL1||COUNT(1)), 0) FROM TEST WHERE COL1 LIKE 'A%' GROUP BY COL1;
----
NVL(MAX(COL1||COUNT(1)), 0)
--------------------------------------
A4

SQL> SELECT NVL(MAX(COL1||COUNT(1)), 0) FROM TEST WHERE COL1 LIKE 'b%' GROUP BY COL1;
----
NVL(MAX(COL1||COUNT(1)), 0)
--------------------------------------
0

 

728x90
반응형
LIST
Posted by 사슴영혼'-'