728x90
SELECT 100 / 0 FROM DUAL
위처럼 분모가 0이 되는 상황에서 쿼리문을 실행하면 다음과 같은 에러가 뜬다.
ORA-01476: 제수가 0 입니다.
당연한 거겠지만 동작하지 않는다. 그럼 어떻게 해결해야할까?
다음과 같이 사용하면 된다.
SELECT NVL( 100 / NULLIF( 0, 0 ), 0 ) FROM DUAL
NULLIF를 사용하여 분모가 0이 될 때 NULL 변환하고, 산술처리를 넘긴 다음에 NVL을 이용하여 0으로 변환하여 사용하면 된다.
아래는 NULLIF와 NVL의 사용법이다.
NULLIF( expr1, expr2 )
expr1과 expr2의 값이 같을 때 NULL로 변환한다.
NVL( expr1, expr2 )
expr1의 값이 NULL일 때 expr2으로 변환한다.
반응형
'ETC' 카테고리의 다른 글
[JavaScript] 윈도우 새창 띄우기 (0) | 2013.12.02 |
---|---|
[JavaScript] 해당 윈도우 URL 변경 (0) | 2013.12.02 |
J(쥴)에서 cal(칼로리)로 (0) | 2013.09.10 |
[JavaScript] setTimeout() 사용법, 딜레이주기 (0) | 2013.08.12 |
[JavaScript] GET형식의 변수 변환 (0) | 2013.08.12 |