原文: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);