📜  在 SQL 中显示没有 ROUND 的结果(1)

📅  最后修改于: 2023-12-03 14:51:10.935000             🧑  作者: Mango

在 SQL 中显示没有 ROUND 的结果

在 SQL 中,ROUND 函数用于将数字舍入到指定的小数位数。然而,在某些情况下,我们可能需要显示没有经过 ROUND 函数舍入的结果。下面介绍几种方法来实现这一目的。

方法一:使用 CAST 函数

CAST 函数用于将一个数据类型转换成另一个数据类型。如果将一个数字转换成 DECIMAL 类型,并且指定小数位数为 0,那么就可以得到没有经过 ROUND 函数的结果。

SELECT CAST(12.345 AS DECIMAL(18,0))

输出结果为:

12
注意事项

如果原始数字的小数位数大于指定的 DECIMAL 类型的小数位数,那么仍然会进行四舍五入。例如:

SELECT CAST(12.3456 AS DECIMAL(18,2))

输出结果为:

12.35
方法二:使用 FORMAT 函数

FORMAT 函数用于将一个数字格式化成指定的文本格式。使用此函数即可得到没有 ROUND 函数的结果。

SELECT FORMAT(12.345, '#.##################')

输出结果为:

12.345
注意事项

在使用 FORMAT 函数时,需要明确指定精度。如果不明确指定精度,那么仍然会进行四舍五入。例如:

SELECT FORMAT(12.3456, '#.##################')

输出结果为:

12.3456
方法三:使用字符串拼接

如果不想使用 CAST 函数或 FORMAT 函数,还可以通过字符串拼接的方式来实现。将数字转换成字符串,并截取其中的整数部分即可得到没有 ROUND 函数的结果。

SELECT SUBSTRING_INDEX(12.345, '.', 1)

输出结果为:

12
注意事项

此方法不能用于负数或科学计数法表示的数字。如果需要处理这类数字,建议使用 CAST 函数或 FORMAT 函数。