我有一个场景,我需要舍入,然后从数字中删除多余的零。所以,如果我有一个数字,我已经舍入(12.456400000),我想零被删除。有没有我可以用来删除这些数字的函数?圆形函数似乎将零点留在原地?如何在SQL Server中整数
一如既往地非常感谢输入。
--S
我有一个场景,我需要舍入,然后从数字中删除多余的零。所以,如果我有一个数字,我已经舍入(12.456400000),我想零被删除。有没有我可以用来删除这些数字的函数?圆形函数似乎将零点留在原地?如何在SQL Server中整数
一如既往地非常感谢输入。
--S
创建用户定义函数(MSDN link),并尽量减少代码:
CREATE FUNCTION [dbo].[RemoveTrailingZeros]
(
@Value decimal
)
RETURNS decimal
AS
BEGIN
RETURN replace(rtrim(replace(@Value, '0', ' ')), ' ', '0')
END
如下你会使用它:
SELECT dbo.RemoveTrailingZeros(12.456400000)
甜蜜的感谢信息 – scarpacci 2010-09-23 05:19:31
太糟糕了,它会留下一个尾随期间的整数。 '12.00000 - > 12.' – 2011-04-28 19:23:54
@Shredder此功能旨在删除所有尾随零。如果你想指定数字的数量,你可以使用JamWheel的CAST解决方案 – 2012-09-25 17:54:45
当然,试试这个:
select replace(rtrim(replace('12.456400000', '0', ' ')), ' ', '0')
想必你知道你有多少位小数四舍五入到,这样你就可以转换为十进制数据类型是正确数量DP的圆形外
CAST(ROUND(Field, 4) AS DECIMAL(12, 4))
重复的问题:http://stackoverflow.com/questions/ 2938296 /删除后缀零从十进制在SQL服务器 – JeffO 2010-09-22 16:42:08