簡體   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