左对齐9.2 SQL选择SQL Server 2012
我的问题相当直截了当。我正在查询存储为929.77的SQL中的一个值,但我需要该列始终为11位,即使它们都是零,因此我希望提取该值,使其显示为000000 92977。现在我得到的是完全相反的结果,是92977000000 提前谢谢左对齐9.2 SQL选择SQL Server 2012,sql,sql-server,decimal,Sql,Sql Server,Decimal,我的问题相当直截了当。我正在查询存储为929.77的SQL中的一个值,但我需要该列始终为11位,即使它们都是零,因此我希望提取该值,使其显示为000000 92977。现在我得到的是完全相反的结果,是92977000000 提前谢谢 LEFT(REPLACE(Cast(ISNULL(c2.preinjwage,0) as varchar), '.', '') + '0000000000',11) as 'wage' 相反: RIGHT('0000000000'+REPLACE(Cast(ISN
LEFT(REPLACE(Cast(ISNULL(c2.preinjwage,0) as varchar), '.', '') + '0000000000',11) as 'wage'
相反:
RIGHT('0000000000'+REPLACE(Cast(ISNULL(c2.preinjwage,0) as varchar(12)), '.', ''),11) as 'wage'
快速测试:
declare @in decimal(9,2)='929.77'
select right('0000000000'+replace(Cast(isnull(@in,0) as varchar(12)), '.', ''),11) as 'wage'
rextester演示:
返回:
+-------------+
| wage |
+-------------+
| 00000092977 |
+-------------+
相反:
RIGHT('0000000000'+REPLACE(Cast(ISNULL(c2.preinjwage,0) as varchar(12)), '.', ''),11) as 'wage'
快速测试:
declare @in decimal(9,2)='929.77'
select right('0000000000'+replace(Cast(isnull(@in,0) as varchar(12)), '.', ''),11) as 'wage'
rextester演示:
返回:
+-------------+
| wage |
+-------------+
| 00000092977 |
+-------------+
假设小数点后总是有两位数(好像小数点后的位数可以改变,建议的格式没有意义,因为它无法区分1.11和111) 你也可以使用
SELECT FORMAT(CAST(ISNULL(c2.preinjwage,0) * 100 AS INT), 'd11')
假设小数点后总是有两位数(好像小数点后的位数可以改变,建议的格式没有意义,因为它无法区分1.11和111) 你也可以使用
SELECT FORMAT(CAST(ISNULL(c2.preinjwage,0) * 100 AS INT), 'd11')
嗯…如果0在错误的一侧,您是否尝试过将其切换到另一侧并使用正确的方法来代替???嗯…如果0在错误的一侧,您是否尝试过将其切换到另一侧并使用正确的方法来代替???完美!谢谢大家!@很乐意帮忙!完美的谢谢大家!@很乐意帮忙!