我有这两段 SQL语句。  SELECT max(s.SUBDEP)+1 as maxValue FROM SUBDEP s
            where D_NO=(select max(D_NO) from DEPART )
 insert into SUBDEP(SUBDEP,SUB_NAME,SUB_NAME_S,D_NO,CLASS,CRE_DATE,CRE_USER)
            values(?,?,?,?,?,?,?)
现在,我想做的是,假定我的SUBDEP插入的时候,是null。我想用上面一条sql查询出的值,去代替这个null值,。。
具体实现不怎么会,大大们帮个忙呀最好具体实现一下,刚刚接触sql没多久。

解决方案 »

  1.   

    大量并发操作的时候这个max值可不一定好用。
      

  2.   


    DECLARE @SUBDEP INT
    SELECT @SUBDEP = max(s.SUBDEP)+1 as maxValue FROM SUBDEP s
      where D_NO=(select max(D_NO) from DEPART )
     insert into SUBDEP(SUBDEP,SUB_NAME,SUB_NAME_S,D_NO,CLASS,CRE_DATE,CRE_USER)
      values(@SUBDEP?,?,?,?,?,?,?)
      

  3.   

    insert into SUBDEP(SUBDEP,SUB_NAME,SUB_NAME_S,D_NO,CLASS,CRE_DATE,CRE_USER)
    SELECT max(s.SUBDEP)+1,'SUB_NAME的值','D_NO的值','CLASS的值','CRE_DATE的值','CRE_USER的值'
     FROM SUBDEP s
      where D_NO=(select max(D_NO) from DEPART )
    是这个意思吗?
      

  4.   

    按照楼主的意思,可以用if判断,可以用case when 。但是建议用自增列。