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
'Oracle' 카테고리의 다른 글
오라클 대소문자구분 없애기 옵션 (0) | 2020.11.19 |
---|---|
[Oracle] 오라클 디렉토리 생성 (0) | 2020.11.19 |
[ora-08002] 시퀀스 currval은 이 세션 에서는 정의 되어 있지 않습니다 (0) | 2020.11.19 |
ORA-01745: 호스트/바인드 변수명이 부적합합니다 (0) | 2020.11.19 |
Oracle to_date, to_char 날짜 형변환 활용 (0) | 2020.11.19 |