我希望编写一个用户定义的函数,它将返回一个根据输入参数调整大小的 char 值。我不确定这是否可能,但我想我还是会问。
所以我有一个看起来像这样的查询:
SELECT
Convert(char(10), SUBSTRING('Field1', 1, 10)) AS Field1,
Convert(char(20), SUBSTRING('Value2', 1, 20)) AS Field2
我想写一个函数,可以这样写:
SELECT
fn_ConvertAndPad('Field1', 10) AS Field1,
fn_ConvertAndPad('Field2', 20) AS Field2
有没有办法将输出指定为 char(10) 或 char(20)?
这是我(显然失败)的尝试:
ALTER FUNCTION [dbo].[fn_ConvertAndPad]
(
-- Add the parameters for the function here
@input varchar(100),
@length int
)
RETURNS char
AS
BEGIN
-- Declare the return variable here
DECLARE @Result char
-- Add the T-SQL statements to compute the return value here
DECLARE @blanks char(100)
SET @blanks = ' '
SELECT @Result = SUBSTRING(@input + @blanks, 1, @length)
-- Return the result of the function
RETURN @Result
END
不,我不能只返回一个 varchar,我需要一个填充字符串来输出纯文本。