selest right(('000000'+rtrim(max(dangan)+1)),6) as dangan from ds
selest right(('000000'+rtrim(isnull(max(dangan),0)+1)),6) as dangan from ds
select right((isnull(max(dangan)+1,1)+1000000),6) from table
上面的这样好些 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位。
to: hsj20041004(光芒) 你好!我刚刚试过了,没有问题。这种情况SQL内部机制是可以自动转换的,用rtrim处理一下空格就可以了
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位。
你好!我刚刚试过了,没有问题。这种情况SQL内部机制是可以自动转换的,用rtrim处理一下空格就可以了