sqlserver里有没有取整的函数

发布网友 发布时间:2022-04-24 21:05

我来回答

2个回答

懂视网 时间:2022-04-08 11:08

--去零函数 ---去除小数点后多余的零 select dbo.ClearZero(‘1245.3400‘) ---结果为1245.34 create function [dbo].[ClearZero] (@Number varchar(200)) returns varchar(200) as begin if @Number = ‘‘ or @Number is null ---如果为空,直接返回 return null else begin declare @PointIndex int set @PointIndex = charindex(‘.‘,@Number) if @PointIndex = 0 return @Number ---如果不是浮点数,直接返回 if @PointIndex = len(@Number) return replace(@Number,‘.‘,‘‘) ----数字末尾有小数点,直接删除返回 else begin if right(@Number,1) = ‘0‘ ---递归调用,进行去零操作 begin set @Number = substring(@Number,1,len(@Number) - 1) return dbo.ClearZero(@Number) end else return @Number end end return null end GO

 

SqlServer经典函数之数字去零

标签:

热心网友 时间:2022-04-08 08:16

参数
numeric_expression

精确数字或近似数字数据类型类别的表达式(bit 数据类型除外)。

length

是 numeric_expression 将要四舍五入的精度。length 必须是 tinyint、smallint 或int。当 length 为正数时,numeric_expression 四舍五入为 length 所指定的小数位数。当 length 为负数时,numeric_expression 则按 length 所指定的在小数点的左边四舍五入。

function

是要执行的操作类型。function 必须是 tinyint、smallint 或 int。如果省略 function 或 function 的值为 0(默认),numeric_expression 将四舍五入。当指定 0 以外的值时,将截断 numeric_expression。

例:
Select ROUND(150.75, 0)
151.00

Select ROUND(150.75, 0, 1)
150.00

FLOOR
返回小于或等于所给数字表达式的最大整数。

FLOOR(1.1)=1
FLOOR(2)=2

CEILING
返回大于或等于所给数字表达式的最小整数。

CEILING(1.1)=2
CEILING(2)=2

如果要四舍五入:

cast(round(1.6,0) as int) =2
cast(round(1.4,0) as int)=1
cast(round(2,0) as int)=2

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com