1 PadLeft
即:向已知字符串左边补充字符,使整个字符串到达指定长度
1 CREATE FUNCTION PadLeft 2 ( 3 @VarOrgan varchar(10),/*原始字符*/ 4 @TotalLength int,/*总长度*/ 5 @Placeholder varchar(1)/*占位符*/ 6 ) 7 RETURNS varchar(100) 8 AS 9 BEGIN10 declare @VarNew varchar(100),11 @PadLen int12 SET @VarNew=@VarOrgan13 SET @PadLen=@TotalLength-LEN(@VarOrgan)14 while(@PadLen>0)15 begin16 select @VarNew=@Placeholder+@VarNew17 set @PadLen=@PadLen-118 end19 return @VarNew20 END
2 PadRight
即:向已知字符串右边补充字符,使整个字符串到达指定长度
1 CREATE FUNCTION PadRight 2 ( 3 @VarOrgan varchar(10),/*原始字符*/ 4 @TotalLength int,/*总长度*/ 5 @Placeholder varchar(1)/*占位符*/ 6 ) 7 RETURNS varchar(100) 8 AS 9 BEGIN10 declare @VarNew varchar(100),11 @PadLen int12 SET @VarNew=@VarOrgan13 SET @PadLen=@TotalLength-LEN(@VarOrgan)14 while(@PadLen>0)15 begin16 select @VarNew=@VarNew+@Placeholder17 set @PadLen=@PadLen-118 end19 return @VarNew20 END
3 测试结果
SELECT dbo.PadLeft('7',6,'0') PadLeft, dbo.PadRight('6',4,'0') PadRight

- 1楼nzperfect
- 好传统的方法。。,,SELECT RIGHT(#39;000000#39;+#39;7#39;,6),LEFT(#39;6#39;+#39;0000#39;,4)
- Re: 孤星无泪
- @nzperfect,有意思,Right(),Left()我从来没有这么用过,不过感觉挺巧妙的。,但是这样写的缺点是:如果我要组合长度为20或30的字符,写起来就麻烦了,万一数错0的个数就不行了。,附:我见过一个项目中的数据库,里面有个字段是32位的,若长度不足,就在前面补0。