T-SQL自定义函数,它有点像MS SQL Server的REPLICATE函数。它有三个参数,第一个@String是原有字符串,第二@Char参数就将要加入至前置字符串,第三个@Leng参数为前置字符串重复次数。
udf_LeftPad
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: Insus.NET
-- Create date: 2012-03-24
-- Description: Character to prepend onto String
-- =============================================
CREATE FUNCTION [dbo].[udf_LeftPad]
(
@String NVARCHAR(MAX),--原字符串
@Char NVARCHAR, --前置字符
@Leng INT --前置字符串最终长度
)
RETURNS NVARCHAR(MAX)
AS
BEGIN
DECLARE @s NVARCHAR(MAX) = N''
IF LEN(ISNULL(@Char,N'')) <> 0
BEGIN
WHILE LEN(@s) < @Leng
BEGIN
SET @s = @Char + @s
END
END
RETURN @s + @String
END
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: Insus.NET
-- Create date: 2012-03-24
-- Description: Character to prepend onto String
-- =============================================
CREATE FUNCTION [dbo].[udf_LeftPad]
(
@String NVARCHAR(MAX),--原字符串
@Char NVARCHAR, --前置字符
@Leng INT --前置字符串最终长度
)
RETURNS NVARCHAR(MAX)
AS
BEGIN
DECLARE @s NVARCHAR(MAX) = N''
IF LEN(ISNULL(@Char,N'')) <> 0
BEGIN
WHILE LEN(@s) < @Leng
BEGIN
SET @s = @Char + @s
END
END
RETURN @s + @String
END
Demo:
SELECT [dbo].[udf_LeftPad]('01','a',7) AS [NewString]
Result: