페이지

2012년 3월 23일 금요일

nvl2를 이용한 commission 조회

원하는건 commission_pct가 null 값이라면 No commission이란 문자를 리턴하고
null값이 아니라면 그대로 commission_pct를 리턴해주려고 한다.
그래서 간단히 아래와 같이 생각했으나

select last_name,
NVL2(commission_pct, commission_pct, 'No Commission')
from employees;

NVL2(commission_pct, commission_pct, 'No Commission')
                                     *
ERROR at line 2:
ORA-01722: invalid number
에러가 뜬다
좀 찾아보니 nvl2건 coalecse건 리턴하는 값은 둘다 같은 타입이어야 하는 결론이 나왔다.
그래서 아래처럼 바꾸어서 해결.

select last_name,
NVL2(commission_pct, to_char(commission_pct), 'No Commission')
from employees;

댓글 없음:

댓글 쓰기