oracle 9i이고
case when 사용중에 값이 반환이 되지 않아 질문드립니다.
EMP_TABLE이라는 사원테이블에서
DEPART_CODE로 해당 부서를 조회하였을때,
만약에 MAX(EMP_NO)가 존재한다면 MAX(EMP_NO) + 1 하고
존재하지 않는 다면 1을 반환하려 합니다.
다만 해당 부서의 MAX(EMP_NO)가 존재할때는 최대값 + 1이 정상적으로 반환되나
존재하지 않을때는 1이 아닌 null로 반환됩니다.
SELECT
CASE
WHEN
EXISTS (SELECT MAX(EMP_NO) FROM EMP_TABLE WHERE DEPART_CODE = '10')
THEN (SELECT MAX(EMP_NO) + 1 FROM EMP_TABLE WHERE DEPART_CODE = '10')
ELSE 1
END as EMP_NO
FROM DUAL;
잘못된 부분 알려주셨으면 합니다.