"MAX로 구한, 결과값이 NULL인 레코드"가 하나 있다는 의미니까 당연히 레코드 카운트는 1이 되겠죠.
일련번호 부여할 때는 그냥 MAX 해서 구하면 됩니다.
아래 예제는 트리거에서 순번을 구하는 예제 입니다.
AS
DECLARE VARIABLE i integer;
BEGIN
if (new.seq is NULL) then
begin
SELECT MAX(seq) FROM tbl_test Into :i ;
if (:i is null) then new.seq = 1;
else new.seq = i + 1;
end
김영곤 님이 쓰신 글 :
: Select MAX(SALES_CD) as CDNUM from SALES
:
: 이렇게 쿼리를 날려서 SALES_CD에 맥스값을 구할때 테이블에 레코드가 없는 경우에 결과값이 NULL로 나오는데..
:
: 문제는 MAX함수로 결과를 구하면 레코드 카운터가 1로 나오는게 정상적인건가요??
:
:
: 추가로 질문을 드리면 일련번호를 부여할때 Select Count(SALES_CD) as CDNUM from SALES 카운터 하고
:
: 카운터가 0이 아닐때 Select MAX(SALES_CD) as CDNUM from SALES 맥스값을 구해서 +1 해야 하나요??
:
:
: 질문이 두서가 없어서 죄송합니다..
:
: 읽어주셔서 감사합니다.
:
:
:
:
|