繁体   English   中英

T-SQL 舍入到 0.0、0.5 或 1.0

[英]T-SQL Rounding to 0.0, 0.5, or 1.0

我有一个有趣的问题,我需要以特定方式对 AVG() function 的结果进行舍入,以便在 ORDER BY 子句中使用。

这些用于配方评级。

舍入公式的示例:

1.2 -> 1
1.4 -> 1
1.5 -> 1.5
1.6 -> 2
1.9 - >2

我正在查询一个食谱列表,并且需要订购它们,这样一个 5 星评级的食谱就不会高于一个平均 4.9 的 100 个评级的食谱。 order by 子句的第二部分是评分计数。

如果这需要用户定义的 function,我不太清楚 go 如何去做。

ORDER BY
    CASE WHEN (Num % 1) = .5
        THEN Num
        ELSE ROUND(Num,0)
    END

如果我理解正确的话,你有星星和半星吗? 我建议ORDER BY ROUND(value*2, 0)/2 ,这样它会四舍五入到最接近的0.5 (半星)步长。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM