SQL字串的數字部分遞增
昨天寫一個儲存過程時,有這樣一個字串 ZH#000001,每次插入新的行時,數字部分需要+1,既 第1001次就是 ZH#001001。在實際寫的過程中 select 'ZH#'+convert(varchar(20),('000001'+1))得到的結果是 ZH#2。原因是'000001'+1結果為2,轉int型時去掉了前面的5個0。
因為第一次遇見這種情況,沒有經驗,開始直接想怎麼判斷它得到的結果少了幾個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
得到正確結果之後將問題給同事說,他也提供了一種類似的辦法,似乎比我那個更簡單
<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
-->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(原字串,總長度,填充字串),和第二種方法類似
<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
-->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新出來的嗎?語言真是越做越簡單了,簡單到讓人忘記思考。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16436858/viewspace-682265/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- sql 流水號的遞增SQL
- 【LeetCode】738. 單調遞增的數字LeetCode
- CSS 計數器的妙用:數字遞增動效CSS
- excel下拉數字不遞增只複製 excel表格下拉數字不遞增怎麼操作Excel
- 力扣-738. 單調遞增的數字力扣
- SQL Server 中將字串按數字排序SQLServer字串排序
- 單調遞增的數
- Excel資料匯入Sql Server,部分數字為NullExcelSQLServerNull
- 遞推--找數字
- 字串轉數字的問題字串
- 字串分割 提取數字字串
- PHP字串數字相加PHP字串
- 數字與字串5.5字串
- mysql 字串和數字比,字串會隱式轉換為數字0MySql字串
- 數字格式字串轉數字保留後面0字串
- Golang字串解析成數字Golang字串
- JavaScript字串轉換數字JavaScript字串
- 字串或數字反轉字串
- 遞增的整數序列連結串列的插入
- SQL 如何拆分字串中的數值後排序SQL字串排序
- Java™ 教程(比較字串和字串的部分)Java字串
- Python 工匠:使用數字與字串的技巧Python字串
- 去掉字串中重複部分 提取檔案字尾名字串
- java從字串中提取數字Java字串
- c++中數字和字串的轉換C++字串
- javascript中將數字轉為字串的方法JavaScript字串
- vue 數字滾動遞增效果Vue
- JavaScript輸入字串字數倒計JavaScript字串
- Python學習筆記 - 字串,數字Python筆記字串
- PAT-B 1048 數字加密【字串】加密字串
- Thymeleaf將字串轉換為數字字串
- SQL中的遞迴用法SQL遞迴
- 【冰山白皮書】JS中的布林 數字 字串JS字串
- python字串的分段美化-數字中間用_或者,Python字串
- Python正規表示式匹配字串中的數字Python字串
- java判斷輸入的字串是否為數字Java字串
- 11-09字串中的單詞數字串
- HOME: Count Digits —— 計算字串中數字個數Git字串
- Python中如何將字串變成數字?Python字串