29.字符串格式化函数

89 阅读1分钟
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[f_FormatSTR]') and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[f_FormatSTR]
GO


/*--字符串格式化函数

	分拆指定分隔符的的字符串,并把它重新组成生成固定长度的字符串

*/

/*--调用示例

	SELECT dbo.f_FormatSTR('1.1.10','.')
--*/
CREATE FUNCTION f_FormatSTR(
@s varchar(4000),   --要分拆的字符串
@split varchar(10)  --数据分隔符
)RETURNS varchar(8000)
AS
BEGIN
	DECLARE @splitlen int,@re varchar(8000)
	SELECT @splitlen=LEN(@split+'a')-2,@re=''
	WHILE CHARINDEX(@split,@s)>0
		SELECT @re=@re
			+RIGHT(SPACE(20)+(LEFT(@s,CHARINDEX(@split,@s)-1)),20)
			+@split,
			@s=STUFF(@s,1,CHARINDEX(@split,@s)+@splitlen,'')
	RETURN(@re+RIGHT(SPACE(20)+@s,20))
END
GO