sql - T-SQL 四舍五入到 0.0、0.5 或 1.0

标签 sql tsql sql-order-by rounding

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

这些用于配方评级。

舍入公式的示例:

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

我正在查询食谱列表,并且需要对它们进行订购,这样具有 5 星评级的食谱就不会被订购超过 100 个评级(平均 4.9 分)的食谱。 order by 子句的第二部分是评分计数。

如果这需要用户定义的函数,我不太确定如何去做。

最佳答案

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

关于sql - T-SQL 四舍五入到 0.0、0.5 或 1.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6682856/

相关文章:

MySQL使用左连接时重复列值

SQL 性能方面,: an IF. ..ELSE 子句和 WHERE LIKE 子句哪个更好?

sql-server - T-SQL CTE 的性能特征

sql - CTE 查询 SQL 服务器中的解析错误

MySQL:如何根据另一个字段的值对 ASC 中的一些记录和 DESC 顺序中的一些记录进行排序

mysql - 无法运行查询

php - 重复的名字

Mysql 查询获取最近 6 个月的计数,包括计数 0

sql - PostgreSQL 按两列排序,最后可为空

mysql - 获取具有 ID 的所有记录,但第一条记录也应匹配另一个条件