我想在SQL Server中将-13422.8450四舍五入为-13422.84.

但是使用ROUND(-13422.8450, 2)就是返回-13422.85

以下是完整的查询:

SELECT ROUND(CAST(-1 * 50 * 26845.69 / 100 AS NUMERIC(13, 4)), 2)

推荐答案

将第三个非零值参数添加到ROUND函数;该函数将截断而不是舍入:

SELECT ROUND(-13422.8450, 2)
-- -13422.8500

SELECT ROUND(-13422.8450, 2, 1)
-- -13422.8400

需要注意的是,在调用ROUND函数之前,从NUMERIC到NUMERIC的强制转换将使结果变为round.在您的示例中,您需要舍入(截断),then强制转换.

Sql相关问答推荐

优化SQL查询流

创建每小时重置的序列号

PG SQL中按条件聚合值

有没有一种正确的方法来利用SQL UNION来从三个潜在查询中 Select 最大值?

在Golang中管理数据库事务的简洁方法

如何在幂函数中正确使用Power()和Exp()

Select 起始参数和截止参数之间的间隔,包括与期间重叠的参数

如何根据给定条件PostgreSQL迭代减少组中的行数

查询每周数据(周一至周日),避免年度日期重叠

将Dense_RANK列为聚合(非解析)函数(&A)

无法将发票与产品价格相关联

PostgreSQL-按距离阈值挤压相邻行的性能

如何在多列上编写具有不同条件的查询?

给定 3 个键列,从一个表中 Select 另一表中不存在的所有数据

SQL 查找 varchar 类型列及其值中多次出现的子字符串

如何将输出转换为二维格式?

Snowflake中的动态SQL优化

Select 多年的日期范围

使用 regexp_replace 替换所有出现的特殊字符

忽略与给定列匹配的行的 LAG 函数