文章评分
次,平均分 :
在最近的数据处理过程中,遇到了一个多源数据关联的问题。但是由于系统原因,这两个表中相同字段的位数不一样,一个是以固定长度(长度6位)的文本存储,一个是以整数存储(长度1~6位不等)。在C#里面,有String.Padleft函数可以处理这种问题,但可惜的是SQL Server里面没有。
因为自己对SQL也不是很熟,所以到网上找了一圈,结果找到下面的解决方案:
PadLeft:
1 2 3 4 5 6 7 |
Create Function PadLeft(@OriginalString varchar(20),@PaddingChar char(1),@TotalLength int) Returns Varchar(20) As Begin Declare @NewString varchar(20) Select @NewString = IsNull(Replicate(@PaddingChar,@TotalLength - Len(isnull(@OriginalString ,0))), '') + @OriginalString Return @NewString End |
PadRight:
1 2 3 4 5 6 7 |
Create Function PadRight(@OriginalString varchar(20),@PaddingChar char(1),@TotalLength int) Returns Varchar(20) As Begin Declare @NewString varchar(20) Select @NewString = @OriginalString + IsNull(Replicate(@PaddingChar,@TotalLength - Len(isnull(@OriginalString ,0))), '') Return @NewString End |
调用如下:
Select dbo.PadLeft('101', '0', 6) --000101
Select dbo.PadRight('101', '0', 6) --101000
参考:学步园
除特别注明外,本站所有文章均为交通人原创,转载请注明出处来自http://www.hijtr.com/sqlserver-padleft-padright/
暂无评论