SQL Server Pad前导零

时间:2018-09-05 15:58:58

标签: sql-server

在SQL Server 2008中,我似乎无法获得以下结果来填充前导零。请注意,AMT14的类型为varchar,因此将使用AMT14并且强制转换为decimal,因此它可以执行SUM函数。

<<select right('0000000000000' + sum(cast(AMT14 as decimal(13,2))),13) from {table1}>>

结果:656311.22
期望的结果:00000656311.22

2 个答案:

答案 0 :(得分:0)

问题在于该值将强制转换为十进制,然后将其添加为零。您只需要将总和的结果强制转换为varchar,就可以了

declare @amt14 varchar(10) = 656311.22

选择向右('0000000000000'+ cast(sum(cast(@ AMT14为十进制(13,2)))为varchar),13)

答案 1 :(得分:0)

您可以使用RTRIM,希望对您有所帮助

select right('0000000000000' + RTRIM(sum(cast('656311.22' as decimal(13,2)))),13)