SQL Server中的标量值函数

时间:2016-01-13 20:11:08

标签: sql sql-server padding

我有一个有效的功能,它返回变量长度???

[dbo].[StringPadRight]
   (@String as Varchar(max),
    @Length as int,
    @Char as char(1))
RETURNS Varchar(max)
AS
BEGIN
    Declare @PaddedString as Varchar(max)

    -- Return same string if @Length is smaller or equal to the length of @String value
    --  If(Len(@String) >= @Length )
    --       RETURN @String

    -- Create PaddedString
    Set @PaddedString = @String + Replicate('*', @Length - Len(@String))

    -- Return the PaddedString
    RETURN @PaddedString
 END

我的输出如下:

enter image description here

白面包(厚)******************************* 2.75面包
白面包(薄)******************************** 2.75面包
黑面包*************************************** 2.75面包
石磨WW面包***************************** 2.75面包
黑麦面包***************************************** 3.5.2面包
9谷物面包********************************************************************************************* 葡萄干面包********************************** 3.25面包
法式长棍面包***************************************** 2.2.2面包
为什么不确定为什么会这样?

1 个答案:

答案 0 :(得分:1)

您的功能正常运作。所有字符串结果都是相同的长度。它们看起来像不同的长度,因为你用可变宽度的字体看它们,其中一些字符比其他字符宽。

将结果粘贴到快递字体中会显示它们的宽度相同,实际上是对字符进行计数。