将十进制修剪为2位数

时间:2015-09-11 14:58:57

标签: sql sql-server

我有这个查询

SELECT CONVERT(VARCHAR(20),(((currentytd - PreviousYTD) / PreviousYTD) * 100)) + '%' as ytdGrowth from ytd 

它正在回归: 11.224300%

我想回复: 11.22%

我是一个非常新的SQL,所以试图找到完成此任务的正确方法。

4 个答案:

答案 0 :(得分:1)

   SELECT CONVERT(VARCHAR(20),round((((currentytd - PreviousYTD) / PreviousYTD) * 100),2)) + '%' as ytdGrowth from ytd 

只需将round(X,2)添加到您的查询

即可

答案 1 :(得分:1)

首先以decimal精度(18,2)转换为2,然后nvarchar

SELECT CONVERT(VARCHAR(20),CONVERT(decimal(18,2),(((currentytd - PreviousYTD) / PreviousYTD) * 100))    ) + '%' AS ytdGrowth 
from ytd 

答案 2 :(得分:0)

您可能会发现str()有用:

SELECT str( ((currentytd - PreviousYTD) / PreviousYTD) * 100.0, 5, 2) + '%' as ytdGrowth
from ytd 

答案 3 :(得分:0)

使用小数时,我个人更喜欢CAST

CAST (value as DECIMAL (9,2))

9表示字符总数,2表示小数点后的字符数