【问题标题】:T-SQL round to decimal placesT-SQL 舍入到小数位
【发布时间】:2010-07-06 22:26:20
【问题描述】:

如何将 matchpercent 的结果四舍五入到小数点后两位 (%)? 我正在使用以下内容返回一些结果:

DECLARE @topRank int
set @topRank=(SELECT MAX(RANK) FROM
FREETEXTTABLE(titles, notes, 'recipe cuisine', 1))
SELECT 
    ftt.RANK, 
    (CAST(ftt.RANK as DECIMAL)/@topRank) as matchpercent, --Round this
    titles.title_id, 
    titles.title
FROM Titles
INNER JOIN 
FREETEXTTABLE(titles, notes, 'recipe cuisine') as ftt
ON
ftt.[KEY]=titles.title_id
ORDER BY ftt.RANK DESC

【问题讨论】:

    标签: sql sql-server tsql


    【解决方案1】:

    CAST/CONVERT 结果:

    CAST((CAST(ftt.RANK as DECIMAL)/@topRank) AS DECIMAL(n,2)) as matchpercent,
    

    ...其中n 是一个大到不会截断小数点左侧的数字。也就是说,如果使用“123.456”,则需要使用DECIMAL(7,2),因为总长度为7位。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-09
      • 1970-01-01
      相关资源
      最近更新 更多