文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>SQL字符串的数字部分递增

SQL字符串的数字部分递增

时间:2010-12-14  来源:花祭果凛

 

因为第一次遇见这种情况,没有经验,开始直接想怎么判断它得到的结果少了几个0,然后将0补上,后来发现那样做非常复杂,大脑里的懒惰细胞发挥作用,绞尽妹汁的开始想有什么简单的办法可以解决。找了以前的几个类似情况,发现那些 XX#后面跟的是非0的数字开头,例如 ZJ#1003。


我就想着直接给'000001'先加个头,变成'1000001',这样再递增就可以得到想要的结果了。

declare @book_code varchar(50)

set @book_code=(select max(right('ZH#000001',6)) where 'ZH#000001' like 'ZH#%')

set @book_code='ZH#'+right(('1'+@book_code)+1,len('1'+@book_code)-1)

select @book_code

 


得到正确结果之后将问题给同事说,他也提供了一种类似的办法,似乎比我那个更简单

 

 

declare @book_code varchar(50)
set @book_code=(select max(right('ZH#000001',6)) where 'ZH#000001' like 'ZH#%')+1
set @book_code='ZH#'+right('000000'+@book_code,6)
select @book_code

 

 

在闪存中也有人提供了一种lpad(原字符串,总长度,填充字符串),和第二种方法类似

 

declare @book_code varchar(50)
set @book_code=(select max(right('ZH#000001',6)) where 'ZH#000001' like 'ZH#%')+1
set @book_code='ZH#'+lpad(@book_code,6,'0')
select @book_code

 

 

但2005似乎不支持这个函数,是2008新出来的吗?语言真是越做越简单了,简单到让人忘记思考。

相关阅读 更多 +
排行榜 更多 +
坦克战争世界

坦克战争世界

模拟经营 下载
丛林反击战

丛林反击战

飞行射击 下载
几何飞行安卓版

几何飞行安卓版

飞行射击 下载