sql="insert into table(ref,name, email, title, content)"
sql=sql & " (select IsNull(MAX(ref), 0) + 1, 'name', 'email', 'title', 'content' from table)"
db.execute(sql)

이렇게 하는게 더 짧네요 ^^;


> 김정호 님이 쓰신  글
> ----------------------------------------------------------
> 쿼리문이 틀린거 같아 수정합니다.
>
> sql="insert into table(ref,name, email, title, content)"
> sql=sql & " (select case when max(ref) is null then 1 else max(ref)+1
> end, 'name', 'email', 'title', 'content' from table)"  <== 요 부분입니다.
> db.execute(sql)
>
>
> > 손님 님이 쓰신  글
> > ----------------------------------------------------------
> > 흔히 게시판등의 글을 쓸때
> > max(ref) 의 값을 select 후 max(ref)+1 값을 구해서 게시판 테이블에 insert 를 합니다.
> >
> > sql="select max(ref) from table"
> > set rs=db.execute(sql)
> >
> > if rs.eof then
> >  maxref=1
> > else
> >  maxref=rs(0)+1
> > endif
> >
> > sql="insert into table (ref, name, email. title, content) values
> > (maxref, 'name', 'email','title','content') "
> >
> > => 이것을 아래처럼 하나의 sql로 처리할수 있습니다.
> >
> > sql="insert into table(ref,name, email, title, content)"
> > sql=sql & " (select case when max(ref) is null then 1 else max(ref)+1
> > end, 'name', 'email', 'title', 'content')"
> > db.execute(sql)

+ Recent posts