DBMS/Oracle
[Oracle] NVL 존재하지 않는 데이터 0으로 출력하기
박혜웅
2017. 11. 13. 22:23
NVL 존재하지 않는 데이터 0으로 출력하기
혼자 프로젝트를 하다가 데이터가 존재하지 않을 경우 0
존재할 경우 그 값에 1을 더한값을 입력하고 싶었습니다.
그래서 생각한게 NVL함수인데 NVL함수는 데이터가 존재할 때 사용할 수 있습니다.
그러면 테이블에 데이터가 아예 존재하지 않을때 NVL함수를 사용하려면 어떻게 해야할까요?
답은 간단합니다. 컬럼명 앞에 그룹함수를 씌워주면 됩니다.
아래 쿼리문은 제 프로젝트의 댓글을 입력하는 쿼리문입니다.
파란색으로 칠한 부분처럼 그룹함수를 씌워주면 데이터가 없을때에도
NVL함수가 null로 인식해서 0을 반환하게 됩니다.
INSERT INTO re_deal_comment
(com_no, com_sep, com_content, deal_no, com_author, com_rdate,com_group)
VALUES
(SEQ_RE_DEAL_COMMENT.nextval,0,#{com_content},#{deal_no},#{s_nick}, to_char(sysdate, 'yyyy-mm-dd/AM hh:mi:ss')
,(select decode(NVL(max(com_group),0),0,1,max(com_group)+1) from re_deal_comment where deal_no = #{deal_no}))