实现SQL SERVER 下的PadLeft函数
??????例如 在做自動(dòng)編號這樣使用
???? int nextID=da.GetMaxNum()+1;
???? this.txtCode.Text = nextID.ToString().PadLeft(6, '0');
??????今天客戶想要在用戶表里加個(gè)工號字段,這個(gè)字段是自動(dòng)生成的,這個(gè)很容易實(shí)現(xiàn)。但是用戶表里已經(jīng)有300多條記錄,需要編號,手工錄入
顯然太麻煩,實(shí)施人員也會(huì)感覺枯燥乏味,我就想在數(shù)據(jù)庫里有寫段腳本自動(dòng)編號,發(fā)現(xiàn)數(shù)據(jù)里沒提供類似于右對齊的函數(shù)。
于是左查右看,就寫了這么個(gè)自定義函數(shù)
--功能:右對齊的字符,在左邊用指定的字符填充以達(dá)到指定的總長度。
--@num:原始字符@paddingChar:填充字符 @totalWidth:結(jié)果字符串中的字符數(shù)
--create by guoliang 2009/06/12
create function PadLeft(@num varchar(16),@paddingChar char(1),@totalWidth int)
returns varchar(16) as
begin
declare @curStr varchar(16)
select @curStr = isnull(replicate(@paddingChar,@totalWidth - len(isnull(@num ,0))), '') + @num
return @curStr
end
--測試函數(shù):
SELECT dbo.PadLeft('8', '0', 6)
----------------
000008
(所影響的行數(shù)為 1 行)
然后用游標(biāo)一行一行取出來,修改工號字段就ok了.
總結(jié)
以上是生活随笔為你收集整理的实现SQL SERVER 下的PadLeft函数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux达人养成计划学习笔记(四)——
- 下一篇: 如何确认软件测试结束的标准(系统可以上线