select cast(right(cast(isnull(max(dangan),'000000') as numeric) +1000001,6) as varchar) from ds

解决方案 »

  1.   

    selest right(('000000'+rtrim(max(dangan)+1)),6) as dangan from ds
      

  2.   

    selest right(('000000'+rtrim(isnull(max(dangan),0)+1)),6) as dangan from ds
      

  3.   

    select  right((isnull(max(dangan)+1,1)+1000000),6) from table
      

  4.   

    上面的这样好些
    select cast(right(cast(isnull(max(dangan),'000000') as numeric) +1000001,6) as varchar(10)) from ds
    to: vbman2003(家人) 
    selest right(('000000'+rtrim(max(dangan)+1)),6) as dangan from ds
    你的好象不对,
    varchar类型怎么能相加呢。
    应该是:
    select '00000'+ cast(cast(isnull(max(dangan),'000000') as numeric) +1 as varchar(10)) from ds
    但是这样有局限性,当你的最大值是000010时,查询相互来的结果是:0000011
    就成了7位了,不是6位。
      

  5.   

    to: hsj20041004(光芒)
    你好!我刚刚试过了,没有问题。这种情况SQL内部机制是可以自动转换的,用rtrim处理一下空格就可以了