我有一列整数,例如0000000001、0000000002,有时还用长度为10的varchar类型的xxxxxxxxxx。 我需要只获得max(column)+1或0000000002,以便遵循0000000003。 但现在是因为里面的xxxxxxxxxx再次从0000000001开始。
选择max(ID)+1
答案 0 :(得分:0)
在非数字的字符串中添加数字时,它将返回该数字。
'foo'+ 42 = 42
由于您选择了MAX(ID)
,因此它会返回“ xxxxxxxxxx”。
最简单的解决方法是对计算进行一些调整。
SELECT max(ID+1) from yourtable
因为那样,从“ xxxxxxxxxx” +1返回的1不会成为最大值。
或选择大于0的那些。
select LPAD(MAX(ID)+1, 10, '0')
from yourtable
where id > 0