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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- excel下拉數字不遞增只複製 excel表格下拉數字不遞增怎麼操作Excel
- CSS 計數器的妙用:數字遞增動效CSS
- 【LeetCode】738. 單調遞增的數字LeetCode
- SQL Server 中將字串按數字排序SQLServer字串排序
- Awk 字串連線操作(字串轉數字,數字轉字串)字串
- 【SQL】時間遞增的兩種方法SQL
- Excel資料匯入Sql Server,部分數字為NullExcelSQLServerNull
- C++/C:數字轉成字串, 字串轉成數字C++字串
- 巧取字串中的數字字串
- 獲得資料中的數字部分
- 數字與字串5.5字串
- PHP字串數字相加PHP字串
- 字串分割 提取數字字串
- [iOS 取出字串中的數字]iOS字串
- PHP提取字串中的數字PHP字串
- 字串和數字的相互轉換字串
- mysql 字串和數字比,字串會隱式轉換為數字0MySql字串
- 數字格式字串轉數字保留後面0字串
- 字串或數字反轉字串
- JavaScript字串轉換數字JavaScript字串
- Golang字串解析成數字Golang字串
- 字串型別數字order by字串型別
- 從字串中提取數字字串
- 將字串轉為數字字串
- 遞增、遞減運算子位於變數前後的區別變數
- 【美妙的Python之四】變數:數字、字串Python變數字串
- javascript數字和字串的相互轉換JavaScript字串
- 抽取字串中數字的函式字串函式
- vue 數字滾動遞增效果Vue
- java從字串中提取數字Java字串
- JavaScript 字串轉數字:陷阱(示例)JavaScript字串
- SQL Cookbook—數字、日期SQL
- 統計字串中數字個數,並將數字字串形式輸出字串
- 去掉字串中重複部分 提取檔案字尾名字串
- Java™ 教程(比較字串和字串的部分)Java字串
- Java的自動遞增和遞減Java
- javascript中將數字轉為字串的方法JavaScript字串
- Python 工匠:使用數字與字串的技巧Python字串