MAX(NVL, 질문 입니다. 0 5 2,417

by 동안이 [2013.07.12 10:12:24]


UI단에서 데이터를 등록했을때 시퀀스 값을 증가 하게 할려고 합니다.
 각 데이터 마다 시퀀스 번호가  들어 가게 할려구요.


현재는 테이블안에 데이터가 하나도 없는 상태이며
테이블명은 TPRESENTATION

GOODS_SEQ 컬럼은 PK 이고  GOODS_SEQ    NUMBER     NOT NULL
이렇게 테이블에 구성되어 있습니다.


그래서 아이바티스에서 해당 컬럼에 이런 식으로 쿼리를 짰는데  값이 안넘어 가길래
<selectKey keyProperty="goodsSeq" resultClass="java.lang.String">
<![CDATA[

SELECT MAX(NVL(GOODS_SEQ,0))+1
   FROM TPRESENTATION
]]>
  </selectKey>

토드에서도 쿼리문을 돌려봤더니 1이 나와야 되는데 1이 나오지 않고  빈 값으로 나옵니다. 

문제점이 무엇이며 어떻게 해야 1이 나오게 할 수 있는지 답변 부탁 드리겠습니다.  

by 용근님 [2013.07.12 10:14:43]

nvl(max

by 아발란체 [2013.07.12 10:17:18]

MAX와 NVL 자리를 바꿔주세용. ^^


by 우리집아찌 [2013.07.12 10:30:59]


테이블에 레코드 자체가 없으니 MAX를 구할수없어요.


by 아린 [2013.07.12 10:37:56]
테이블에 데이터가 없더라도  

MAX 와 같은 집계함수를 사용해서 NULL 데이터를 만들수 있어요.

CREATE TABLE t(
seq NUMBER
);

SELECT NVL(MAX(seq), 0) seq
  FROM t 

by 동안이 [2013.07.12 11:48:50]
제가 너무 복잡하게 생각했네요. 답변  감사합니다!! ^^  
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입