SELECT MAX(SUBSTRING(你的字段, 2, len(id) - 1)) + 1
FROM 表

解决方案 »

  1.   

    oracle中:
    select 'R'||(to_char(sysdate,'yyyymmdd')
    ||lpad(substr(nvl(max(fieldname),'00000000000'),10,4)+1,4,'0')-1)
    from tablename
      

  2.   

    我是xzou(亡狼补齿)的兄弟,给我点分吧。
      

  3.   

    更正一下:
    select 'R'||(to_char(sysdate,'yyyymmdd')
    ||lpad(substr(nvl(max(djhm1),'00000000000'),10,2)+1,2,'0')-1)
    from qyly
      

  4.   

    faint,老是paste错:
    select 'R'||(to_char(sysdate,'yyyymmdd')
    ||lpad(substr(nvl(max(tablename),'00000000000'),10,2)+1,2,'0')-1)
    from tablename
      

  5.   

    在sql server中 如何实现呢
      

  6.   

    或者告诉我 lpad  nvl 是啥意思?
      

  7.   

    如果你是想取得下一个sn的话可以用下面的,不过最大到了99就会有问题了,想做得更完美可以用case when专门解决99的情况,类似于我下面写的,很容易改进的
    sql server:
    select isnull(substring(max(sn),1,9)+
    right('00'+convert(char(2),convert(int,substring(max(sn),10,2))+1),2),
    'R'+convert(char(8),getdate(),112)+'00') from yourtable 
    where substring(sn,2,8) = convert(char(8),getdate(),112)oracle:(用decode解决99问题)
    select nvl(substr(max(sn),1,9)||LPAD(to_char(to_number(substr(max(sn),10,2))+1),2,'0'),'R'||to_char(sysdate,'YYYYMMDD')||'00') from yourtable 
    where substr(sn,2,8) = to_char(sysdate,'YYYYMMDD')
      

  8.   

    to qiangsheng:
    我们公司不能用qq了,有时间可以给我写信,我们家出了很不辛的事情,今年的同学的聚会活动我不参加了。