使用T-SQL的数值函数 按照我们前面的分类,我们要介绍的最后一类函数是数值处理函数。总的来说,这些函数都是以某种方式修改指定数值,比如对数值做四舍五入或者计算它的绝对值。 我们先介绍三个这种类型的函数,它们是:“ROUND”,“FLOOR”和“CEILING”。“ROUND”函数对数值做指定精度的四舍五入,而“FLOOR”函数返回小于或等于指定值的最大整数(向下取整)。
“CEILING”函数返回大于或等于指定值的最小整数(向上取整)。下面的例子展示了这三个函数的用法: DECLARE @exp1 float SET @exp1 =&nb……
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
使用T-SQL的数值函数
按照我们前面的分类,我们要介绍的最后一类函数是数值处理函数。总的来说,这些函数都是以某种方式修改指定数值,比如对数值做四舍五入或者计算它的绝对值。
我们先介绍三个这种类型的函数,它们是:“ROUND”,“FLOOR”和“CEILING”。“ROUND”函数对数值做指定精度的四舍五入,而“FLOOR”函数返回小于或等于指定值的最大整数(向下取整)。“CEILING”函数返回大于或等于指定值的最小整数(向上取整)。下面的例子展示了这三个函数的用法:
DECLARE @exp1 float SET @exp1 = 54.784392 SELECT ROUND(@exp1, 2) AS [Round], FLOOR(@exp1) AS [Floor], CEILING(@exp1) AS [Ceiling] |
首先,我声明了“@exp1”变量,并给它赋值“54.784392”。然后,我在“SELECT”语句中调用了每个函数。要注意,“ROUND”函数有两个参数:第一个参数是要处理的数值,在本例中就是“@exp1”变量;第二个参数是“2”,表示应该四舍五入保留的精度,它表示小数点后保留的位数。
“FLOOR”函数和“CEILING”函数都有一个参数,本例中就是“@exp1”变量。该“SELECT”语句返回的结果如下:
Round | Floor | Ceiling |
54.78 | 54 | 55 |
接下来我们要介绍的函数是“ABS”函数,它返回一个数值表达式的绝对正值。该函数返回的结果取决于数值表达式是正的还是负的,或者是零。下面的例子展示了这三种情况:
DECLARE @abs1 float SET @abs1 = 1.93 DECLARE @abs2 float SET @abs2 = 0 DECLARE @abs3 float SET @abs3 = -1.93 SELECT ABS(@abs1) AS Absolute1, ABS(@abs2) AS Absolute2, ABS(@abs3) AS Absolute3 |
要注意,我声明并设置了三个变量,并在“SELECT”语句中调用了三次“ABS”,每个变量调用一次。该语句返回结果如下:
Absolute1 | Absolute2 | Absolute3 |
1.93 | 0 | 1.93 |
如你所见,值为“1.93”的变量值和值为“-1.93”的变量值返回的结果是相同的,而值为“0”的变量返回值仍然是“0”。
另一个与数值表达式正负号有关的函数是“SIGN”。如果输入值是正数的话,该函数返回“+1”,如果输入是“0”则返回“0”,而如果输入值是负数则返回“1”。下面的例子展示了这三种情况:
DECLARE @sign1 float SET @sign1 = 1.93 DECLARE @sign2 float SET @sign2 = 0 DECLARE @sign3 float SET @sign3 = -1.93 SELECT SIGN(@sign1) AS Sign1, SIGN(@sign2) AS Sign2, SIGN(@sign3) AS Sign3 |
我声明了三个变量并给它们赋值,然后我在“SELECT”语句中使用了“SIGN”函数,返回每个变量值的正负号。结果如下所示:
Sign1 | Sign2 | Sign3 |
1 | 0 | -1 |
如你所见,值为“1.93”的变量返回值为“1”,值为“0”的变量返回值为“0”,而值为“-1.93”的变量返回值为“-1”。
我们要讲的最后一个函数是“RAND”。该函数返回0到1之间的随机数。下面的语句展示了该函数的用法:
SELECT RAND()
每次你运行这个语句时,它会返回0到1范围内的不同值。然而,如果你在调用“RAND”函数时指定了随机种子,情况就不一样了。例如,在下面的“SELECT”语句中“RAND”函数就使用“10”作为随机数种子:
SELECT RAND(10)
每次你(在一次连接中)使用这个随机数种子调用“RAND”函数时,它会返回相同的结果。例如,我在一次连接中重复运行了上面这个“SELECT”语句,每次都会得到下面这个值:
0.713759689954247
注意,这个值仍然在“0”到“1”之间。
T-SQL数学函数总结
如你所见,在需要对数值做各种计算时,你可以使用数学函数做各种类型的运算。在前面的例子中,我尽量演示了这些函数的用法,以及它们返回的数据类型。要注意,这些例子并没有考虑到这些函数之间的互相调用。为此,我推荐你在SQL Server联机帮助中查找“函数”主题来了解更多细节。到目前为止,你应该已经掌握了使用T-SQL数学函数的良好基础。
翻译
相关推荐
-
OpenWorld18大会:Ellison宣布数据库的搜寻和破坏任务
在旧金山举行的甲骨文OpenWorld 2018大会中,甲骨文首席技术官(CTO)兼创始人Larry Elli […]
-
ObjectRocket着力发展Azure MongoDB服务
MongoDB吸引了微软公司的注意力,微软公司计划针对运行于该公司2017年发布的Azure Cosmos D […]
-
数据库和数据仓库的区别在哪儿?
目前,大部分数据仓库还是用数据库进行管理。数据库是整个数据仓库环境的核心,是数据存放的地方和提供对数据检索的支持。
-
如何使用服务来平衡Oracle RAC 数据库工作负载
为不同的应用程序配置不同的服务,DBA可以更有效地平衡集群工作负载,在Oracle RAC数据库环境下实现更好的应用程序性能。