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 |