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}))





'DBMS > Oracle' 카테고리의 다른 글

[Oracle] 데이터베이스 언어 SQL  (0) 2017.05.11
[Orcale] DataBase 11g 설치(구축)  (3) 2017.04.03

+ Recent posts