如何在SQL中同时添加前导零和小数点?

时间:2015-04-02 14:36:44

标签: sql sql-server

我尝试了很多SQL函数的组合;以便有一个12位数字,包括点字符,包括前导零和小数点。

例如:

对于数字 121.22 ,我想将其格式化为 000000121.22

或数字 12.2 ,我想将其格式化为 000000012.20

或数字 100 ,我想将其格式化为 000000100.00

我使用了以下功能;但如果它为零,我会丢失小数点。

SELECT RIGHT('000000000000'+ STR(CONVERT(VARCHAR,MYNUMBER),12,2),12);

有关如何在Microsoft SQL中解决此问题的任何想法吗?

3 个答案:

答案 0 :(得分:1)

如果您使用的是SQL Server 2012或更高版本,则可以使用format()函数。

SELECT FORMAT(121.22, '000000000000.00')
SELECT FORMAT(12.2, '000000000000.00')

000000000121.22


000000000012.20

答案 1 :(得分:0)

SELECT padded_id = REPLACE(STR(id, 12), SPACE(1), '0')

我根据需要添加使用(在SQL服务器中)前导0,将12更改为您希望它的任何总数。

这允许非硬编码值,只需确保设置id或任何要格式化的列/参数。

答案 2 :(得分:0)

代表ms sql versions not in (2012,2014)

cast(right('000000000',9-len(floor(the_number))) as varchar) 
+ cast( cast(the_number as decimal(10,2))as varchar)

代表ms sql versions in (2012,2014)

 format(the_number ,'000000000000.00')