Sql Server函数全解<二>数学函数

原文:Sql Server函数全解<二>数学函数

  数学函数主要用来处理数值数据,主要的数学函数有:绝对值函数,三角函数(包括正弦函数,余弦函数,正切函数,余切函数)、对数函数,随机函数等。在错误产生时,数学函数将返回空值null。本次介绍各种数学函数的功能和用法。

1.绝对值函数ABS(x)和返回圆周率的函数PI()

 ABS(x)返回x的绝对值,PI()返回圆周率的值

 eg: select ABS(2),ABS(-3.3),ABS(-33),PI();

正数的绝对值是其本身,2的绝对值为2;负数的绝对值为其相反数,-3.3的绝对值为3.3,-33的绝对值为33。

2.平方根函数SQRT(x)

 SQRT(x)返回非负数x的二次方根

eg:select  SQRT(9), SQRT(40);

3.获取随机函数的函数RAND()和RAND(x)

 RAND(x)返回一个随机浮点值v,范围在0~1之间(即0<=v<=1.0).若指定一个整数参数x,则它被用作种子值,使用相同的种子数将产生重复序列。如果同一种子值多次调用RAND函数,它将返回同一生成值。

eg: select RAND(), RAND(), RAND();

 可以看到,不带参数的RAND()每次产生的随即数值是不同的。

eg: select RAND(10), RAND(10), RAND(11);

 可以看到,当RAND(x)的参数相同时,将产生相同的随机数,不同的x产生的随机数值不同。

4.四舍五入函数ROUND(x,y)

 ROUND(x,y)返回接近于参数x的数,其值保留到小数点后面y位,若y为负值,则将保留x值到小数点左边y位。

eg:select ROUND(1.38,1),  ROUND(1.38,0), ROUND(232.38,-1),  ROUND(232.38,-2);

  ROUND(1.38,1)保留小数点后面一位,四舍五入结果为1.4;ROUND(1.38,0)保留小数点后面0位,即返回四舍五入后的整数值,ROUND(232.38,-1)和ROUND(232.38,-2)分别保留小数点左边1位和2位。

5.符号函数SIGN(x)

 SIGN(x)返回参数的符号,x的值为负、零或正时,返回结果依次为-1、0或1。

eg: select SIGN(-21), SIGN(0), SIGN(21);

 SIGN(-21)返回-1,SIGN(0)返回0,SIGN(21)返回1

6.获取整数的函数CEILING(x)和FLOOR(x)

 CEILING(x)返回不小于x的最小整数值,FLOOR(x)返回不大于x的最大整数值;

 eg: select CEILING(-3.35), CEILING(3.35), FLOOR(-3.35), FLOOR(3.35);

 (1)、-3.35为负数,不小于-3.35的最小整数为-3,不小于3.35的最小整数值为4

 (2)、-3.35为负数,不大于-3.35的最小整数为-4,不大于3.35的最小整数值为3

7.幂运算函数POWER(x,y)、SQUARE(x)、和EXP(x)

 (i).  POWER(x,y)函数返回x的y次乘方的结果值;

 (ii). SQUARE(x)函数返回指定浮点值x的平方;

 (iii). EXP(x)函数返回e的x乘方后的值。

 eg: select  POWER(2,2), POWER(2.00,-2),  SQUARE(3), SQUARE(-3), SQUARE(0), EXP(3), EXP(-3), EXP(0);

 可以看到POWER(2,2)返回2的平方,结果为4;POWER(2.00,-2)返回2的-2次方,结果为0.25;

SQUARE(3)返回 3平方,结果为9;SQUARE(-3)返回-3的平方,结果为; SQUARE(0)返回0的平方,结果为0;

EXP(3)返回以e为底的3次方,结果为20.0855369231877, EXP(-3)返回以e为底的-3次方,结果为0.0497870683678639;

EXP(0)返回以e为底的0次方,结果为1。

8.对数的运算LOG(x)和LOG10(x)

 LOG(x)返回x的自然对数,x相对于基数e的对数。

 LOG10(x)返回x的基数为10的对数。

eg: select LOG(3),LOG(6),LOG10(1),LOG10(100),LOG10(1000);

 对数定义域不能为负数,10的0次方为1,所以LOG10(1)返回结果是0,10的2次方为100,所以LOG10(100)返回结果是2,10的3次方为1000,所以LOG10(1000)返回结果是3;

9.角度与弧度相互转换的函数RANDIANS(x)和DEGREES(x)

 RANDIANS(x)将参数x由角度转换为弧度。

 DEGREES(x)将参数x有弧度转换为角度。

eg: select RADIANS(90.0), RADIANS(180.0), DEGREES(PI()/2), DEGREES(PI());

10.正弦函数SIN(x)和反正弦函数ASIN(x)

 SIN(x)返回x的正弦,其中x为弧度值;

 ASIN(x)返回x的反正弦,即正弦x的值,若x不在-1到1的范围内,则返回NULL。

eg: select SIN(PI()/2),SIN(PI()),ASIN(1),ASIN(0);

11.余弦函数COS(x)和反余弦函数ACOS(x)

 COS(x)返回x的余弦,其中x为弧度值;

 ACOS(x)返回x的反余弦,即余弦x的值。若x不在-1到1范围之内,则返回NULL;

eg: select COS(0),COS(PI()),ACOS(1),ACOS(0);

12.正切函数TAN(x),反正切函数ATAN(x)和余切函数COT(x)

 TAN(x)返回x的正切,其中x为给定的弧度值;

 ATAN(x)返回x的反正切,即正切x的值;

 COT(x)返回x的余切。

eg:  select TAN(0.3),ROUND(TAN(PI()/2),0), ATAN(0.30933624960962325),ATAN(1),COT(0.3),1/TAN(0.3),COT(PI()/4);

时间: 2024-10-28 20:01:38

Sql Server函数全解<二>数学函数的相关文章

Sql Server函数全解&lt;三&gt;数据类型转换函数和文本图像函数

原文:Sql Server函数全解<三>数据类型转换函数和文本图像函数 一:数据类型转换函数 在同时处理不同数据类型的值时,SQL Server一般会自动进行隐士类型转换.对于数据类型相近的值是有效的,比如int和float,但是对于其它数据类型,例如整型和字符类型,隐士转换就无法实现了,此时必须使用显示转换.为了实现这种显示转换,T-SQL提供了两个显示转换函数,分别是CAST和CONVERT函数. CAST(x AS type)和CONVERT(type,x)函数将一个类型的值转换为另一个

Sql Server函数全解&lt;四&gt;日期和时间函数

原文:Sql Server函数全解<四>日期和时间函数   日期和时间函数主要用来处理日期和时间值,本篇主要介绍各种日期和时间函数的功能和用法,一般的日期函数除了使用date类型的参数外,也可以使用datetime类型的参数,但会忽略这些值的时间部分.相同的,以time类型值为参数的函数,可以接受datetime类型的参数,但会忽略日期部分. 1.获取系统当前日期的函数getDate();  getDate()函数用于返回当前数据库系统的日期和时间,返回值的类型为datetime.[例]sel

Sql Server函数全解&lt;五&gt;之系统函数

原文:Sql Server函数全解<五>之系统函数  系统信息包括当前使用的数据库名称,主机名,系统错误消息以及用户名称等内容.使用SQL SERVER中的系统函数可以在需要的时候获取这些信息.下面介绍系统函数的作用和使用方法. 1.返回表中指定字段的长度   COL_LENGTH(table,column)函数返回表中指定字段的长度值.其返回值为int类型,table为要确定其列长度信息的表的名称,是nvarchar类型的表达式.column为要确定其长度的列的名称,是nvarchar类型的

Sql Server中的日期与时间函数

Sql Server中的日期与时间函数: 1.  当前系统日期.时间     select getdate()  2. dateadd  在向指定日期加上一段时间的基础上,返回新的 datetime 值:   例如:向日期加上2天    select dateadd(day,2,'2004-10-15')  --返回:2004-10-17 00:00:00.000 3. datediff 返回跨两个指定日期的日期和时间边界数:   select datediff(day,'2004-09-01'

在SQL SERVER中实现Split功能的函数,并在存储过程中使用

代码 CREATE FUNCTION dbo.SplitString(          @Expression NVARCHAR(4000), --要拆分的字符串          @Delimiter NVARCHAR(100), --拆分符号          @n INT --要得到已拆分的返回字符串位置)RETURNS NVARCHAR(4000)ASBEGINDECLARE @p INTSET @p = CharIndex(@Delimiter,@Expression)IF @p >

SQL Server数据全同步及价值分析[终结版]

SQL Server数据全同步[终结版] 版权所有,转载请注明出处,谢谢! 经过两天的同步编写和测试,出了第一个Release版本: 1. 本函数仅支持单向同步,即从一个主数据库想多个从数据库同步 2.主数据库的任何增删改都会同步到所有从数据库上 3. 最重要的一点:同步数据库的价值所在:当主数据库服务器不可用时,程序可以使用其他从数据库或者备用数据库,这对于未来公有云和私有云应用具有重大价值! 代码: <span style="font-size:18px;">/// &

SQL Server 2005加密体系(二)

server|加密|体系 SQL Server 2005加密体系(二)紧接上一篇,再给一段用密钥加密数据的范例,这段代码比较简单,大黄不准像蹂躏大余一样说我灌水!!! -------------------------------------------------------------------------------- --创建实验用数据库USE masterIF EXISTS(SELECT [name] FROM sys.databases WHERE [name] = 'Sales'

调试SQL Server的存储过程及用户定义函数

server|存储过程|函数 1.在查询分析器中调试 查询分析器中调试的步骤如下:    SQL 2000查询分析器        --左连的对象浏览器(没有的话按F8)        --对象项中        --右键调试的存储过程        --调试        --输入参数(必须输入所有的参数,包括默认值/输出参数        --点击执行        --出现一个浮动工具条        --上面有单步执行,断点设置等 按F11是单步执行. 如果要运行到指定行,只需要将光标移

SQL SERVER 2000系统支持的跟踪函数

server|函数 你们大部分人可能已经在SQL SERVER中建立自己的用户定义函数(UDF),但是你知道么?微软公司已经集成了大量自己的UDFs,特别是在最新发布的SP3中.在这篇文章中 Baya Pavliashvili和Kevin Kline系统地研究了关于SQL SERVER跟踪部分的UDF.你们中的一些人也许想阅读以前SQL Server Professional的一篇关于传统UDFs的文章,比如Andrew Zanevsky's 2000年9月的专栏 ("Granting Wish