我试图确定在SQL中截断或删除额外小数位数而不进行舍入的最佳方法.例如:

declare @value decimal(18,2)

set @value = 123.456

这将自动将@value四舍五入为123.46,这在大多数情况下是好的.然而,对于这个项目,我不需要.有没有一种简单的方法来截断我不需要的小数?我知道我可以使用left()函数并将其转换回十进制.还有别的办法吗?

推荐答案

select round(123.456, 2, 1)

Sql相关问答推荐

根据内容确定要插入的列

如何将varchar传递给tvf并使用该参数来查询结果SQL服务器

SUM(条件)在Oracle?

从依赖于其他表的值的XREF表中的值分组获得正确的计数?

不同表达方式时的大小写

NULL-生成的列中连接的字符串的输入

在SQL GROUP BY中的某些行之后执行计算

从结果SQL查询中排除空值

每个学校 Select N个最新的行,但跳过同一学生的重复行

将伪数据插入Postgres表

不同计数的 Postgres PIVOT 表

在特定条件下使用 LAG,确定要采用什么 LAG 值?

计算 ID 满足条件的次数

获取记录的上一个值,并将其与当前值一起显示

SQL:无重复项的两个聚合函数

Postgres更新增量之间的差异

如何通过CROSS APPLY获取多级嵌套JSON属性的值?

为什么 get_json_object() 无法从存储在 Hive SQL 表中的 JSON 中提取值?

如何对 SQL 表中的连续时间戳进行分组?

来自 SQL Server 的树层次 struct 图的 JSON