'oraclefunction'에 해당되는 글 1건

  1. 2020.11.19 oracle 쿼리 결과값 없을 경우 0으로 반환
Oracle2020. 11. 19. 09:18

 

 

 

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

이런 경우 강제적으로 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

 

Posted by 사슴영혼'-'