在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
答案 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)