sql server 编写函数,去除小数点后多余的0
要在 SQL Server 中编写一个函数来去除小数点后多余的零,你可以使用以下示例的方法:
CREATE FUNCTION dbo.RemoveTrailingZeros(@input DECIMAL(18, 6)) RETURNS VARCHAR(255) AS BEGIN DECLARE @result VARCHAR(255); -- 将 DECIMAL 转换为字符串,然后使用 RTRIM 去除右侧的空格 SET @result = RTRIM(CAST(@input AS VARCHAR(255))); -- 如果字符串中包含小数点,则进一步处理 IF CHARINDEX('.', @result) > 0 BEGIN -- 从右向左查找第一个非零字符 DECLARE @i INT = LEN(@result); WHILE @i > 0 AND SUBSTRING(@result, @i, 1) = '0' BEGIN SET @i = @i - 1; END -- 如果找到非零字符,则去除它右侧的零 IF @i > 0 AND SUBSTRING(@result, @i, 1) = '.' BEGIN SET @i = @i - 1; END SET @result = LEFT(@result, @i); END RETURN @result; END;
上述代码创建了一个名为 RemoveTrailingZeros
的函数,该函数接受一个 DECIMAL(18, 6)
类型的输入参数,表示带有小数点的数值。函数首先将 DECIMAL 转换为字符串,然后使用 RTRIM
函数去除右侧的空格。接下来,它会检查字符串中是否包含小数点,如果包含,则从右向左查找第一个非零字符,并去除它右侧的零。
要使用此函数,可以像这样调用它:
DECLARE @input DECIMAL(18, 6) = 123.450000; DECLARE @result VARCHAR(255); SET @result = dbo.RemoveTrailingZeros(@input); SELECT @result; -- 将返回 "123.45"
这个函数可以用于去除小数点后多余的零,并返回一个字符串表示。
标签:SET,函数,DECIMAL,sql,小数点,server,result,去除 From: https://www.cnblogs.com/beichengshiqiao/p/17754829.html