相比之下,说:
REPLICATE(@padchar, @len - LEN(@str)) + @str
相比之下,说:
REPLICATE(@padchar, @len - LEN(@str)) + @str
当前回答
select right(replicate(@padchar, @len) + @str, @len)
其他回答
我喜欢vnRocks的解决方案,这里是一个udf的形式
create function PadLeft(
@String varchar(8000)
,@NumChars int
,@PadChar char(1) = ' ')
returns varchar(8000)
as
begin
return stuff(@String, 1, 0, replicate(@PadChar, @NumChars - len(@String)))
end
这个怎么样:
replace((space(3 - len(MyField))
3是要填充的零的个数
在SQL Server 2005及以后的版本中,您可以创建一个CLR函数来完成此操作。
这是一个简单的左填充方法:
REPLACE(STR(FACT_HEAD.FACT_NO, x, 0), ' ', y)
其中x是填充号y是填充字符。
示例:
REPLACE(STR(FACT_HEAD.FACT_NO, 3, 0), ' ', 0)
我希望这能帮助到一些人。
STUFF ( character_expression , start , length ,character_expression )
select stuff(@str, 1, 0, replicate('0', @n - len(@str)))