很奇怪
select to_char(max(to_number(bh)+1)) FROM J_topic where parentbh='00001'
得到的结果是100002
我取后面的五位数
select lpad(to_char(max(to_number(bh)+1)),5,'0') from J_topic where Parentbh='00001'
得到的结果是 10000
用 substr(to_char(max(to_number(bh)+1)),-0,5)结果也是10000
select right('00000'+Convert(nvarchar(50),max(Convert(int,bh)+1)),5) from J_topic where Parentbh=''
--'00000'+Convert(nvarchar(50),max(Convert(int,bh)+1))
--max(Convert(int,bh)+1)
--逐步拆解,要求期实很简单,最大编码+1,然后左边补零
--类为BH这个类型为别的类型,需要先做转换。这个转换ORACLE不需要,如果没记错的话,1在做加减等同于'1'
--转换后再换换回字符型,但我没懂,为什么要转为nvarchar
select lpad(max(BH)+1,'0',5) from J_topic where Parentbh='';