sql序列数据补全函数,如xulieBuquan('0',8,'1524',1) 返回'00001524',最大支持256位

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		zj.mender.yang
-- Create date: 2017-11-09
-- Description:	序列数据补全,如xulieBuquan('0',8,'1524',1) 返回'00001524',最大支持256位
-- 参数说明:@symbol ,补全符号序列,最大50位		
--			 @length ,补全后长度,取值范围0-256
--			 @oldStr ,待补全内容,最大支持到256位
--			 @where  ,补全位置,默认为1,补全到前面,为0时补全到后面		
-- =============================================
alter FUNCTION dbo.xulieBuquan
(
	@symbol varchar(50),
	@length int,
	@oldStr varchar(256),
	@where bit=1
)
RETURNS varchar(256) --最大支持256位
AS
BEGIN
	declare @tStr  varchar(256)
	declare @i  int
	if (@length<len(@oldStr))
	   return @oldStr
	set @i=1
	set @tStr=''
     while @i<=@length-len(@oldStr)
      begin
       set @tStr=@tStr + '' + @symbol
       set @i=@i+1
      end
     if (@where=1) 
       set @tStr=@tStr+ ''+ @oldStr
     else  
       set @tStr=@oldStr + '' + @tStr
            
	RETURN @tStr

END
GO