我有一个场景,我需要舍入然后从数字中删除额外的零。所以,如果我有一个我已经舍入的数字(12.456400000),我希望删除零。有没有我可以用来删除这些数字的功能?圆函数似乎将零保留在原位?
总是非常欣赏输入。
- S
答案 0 :(得分:1)
当然,试试这个:
select replace(rtrim(replace('12.456400000', '0', ' ')), ' ', '0')
答案 1 :(得分:1)
创建用户定义的函数(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)
答案 2 :(得分:0)
据推测,您知道要舍入到的小数位数,因此您可以使用ROUND之外的正确DP数转换为十进制数据类型
CAST(ROUND(Field, 4) AS DECIMAL(12, 4))