12.数学函数
1.求绝对值:Abs()
SELECT FWeight - 50,abs(FWeight - 50) , abs(-5.38) FROM T_Person
2.求指数:Power()
Power()函数是用来计算指数的函数,即计算某数的多少次方。该函数接受两个参数,第一个参数为待求幂的表达式,第二个参数为幂。
SELECT FWeight,power(FWeight,-0.5),power(FWeight,2), power(FWeight,3),power(FWeight,4) FROM T_Person
仿C#的string.formate("{0:000}",34)
select right(cast(power(10,3) as varchar)+34,3)
3.求平方根:Sqrt()
Sqrt()函数是用来计算平方根的函数。该函数接受一个参数,这个参数为待计算平方根的表达式。等价于power(参数,0.5)
select sqrt(9) as FSqrt,power(9,0.5) as FPower
4.求随机数:Rand()
直接使用Rand()而不带参数的话,每次的结果都不一样,在0-1之间的一个随机数。
SELECT rand()
另外Rand()可以接受一个int的种子,但这样产生的结果都是一样的。
SELECT rand(9527)
5.舍入到最大整数:Ceiling()
这个函数用来舍掉一个数的小数点后的部分,并且向上舍入到邻近的最大的整数。比如3.33将被舍入为4、2.89将被舍入为3、-3.61将被舍入为-3。那么请记住这个函数是用来向上舍入到最大的整数,在英语中Ceiling可以理解为“天花板”,舍入到“高高在上的天花板”当然也就是尽可能大的舍入了。
SELECT ceiling(2.336) as FCeiling
6.舍入到最小整数:Floor()
Floor()函数用来舍掉一个数的小数点后的部分,并且向下舍入到邻近的最小的整数。比如3.33将被舍入为3、2.89将被舍入为2、-3.61将被舍入为-4。在英语中Floor可以理解为“地板”,舍入到“低低在下的地板”当然也就是尽可能小的舍入了。
SELECT floor(2.336) as FFloor
7.四舍五入:Round()
两个参数的ROUND()函数用法为:Round(m,d),其中m为待进行四舍五入的数值,而d则为计算精度,也就是进行四舍五入时保留的小数位数。
select round(3.6613,3) as FMin,round(3.6615,3) as FHalf,round(3.6617,3) as FMax
当d为0的时候则表示不保留小数位进行四舍五入
select round(3.499,0) as FMin,round(3.500,0) as FHalf,round(3.611,0) as FMax
特别值得一提的是,d还可以取负值,这时表示在整数部分进行四舍五入。
select round(301,-1) as FMin,round(305,-1) as FHalf,round(309,-1) as FMax
8.三角函数
它接受一个参数,三角函数的求值可以根据二维坐标系中的图形模拟。
select sin(0) as 正弦, asin(0) as 反正弦, cos(0) as 余弦, acos(1) as 反余弦, tan(0) as 正切, atan(0) as 反正切, cot(pi()/4) as 余切
9.求2个变量的反正切:Atn2()
Atn2函数用来计算2个变量的反正切,其使用格式为:Atn2(X,Y),函数返回2个变量X和Y的反正切。它类似于计算Y/X 的反正切,除了两个参数的符号被用来决定结果的象限。
10.求圆周率π:Pi()
不过根据-1 的反余弦值等于π值的这一特性,我们可以用Acos(-1)来变通实现。
select pi(),acos(-1)
11.弧度制转换为角度制:Degrees()
select degrees(pi())
12.角度制转换为弧度制:Radians()
select degrees(pi()) select radians(180)--疑问 select radians(degrees(pi()))
另外弧度和角度的转换可以根据:180角度制=pi()弧度制,来进行等价转换。
13.求符号:Sign()
Sign()函数用来返回一个数值的符号,如果数值大于0则返回1,如果数值等于0则返回0,如果数值小于0则返回-1。该函数接受一个参数,这个参数为待求绝对值的表达式。
select sign(5-10),sign(5-5),sign(5-1)
14.整除余数:%
%用来计算两个数整除后的余数。该函数接受两个参数,第一个参数为除数,而第二个参数则是被除数。
select 8%3 --结果:2
15.自然对数:Log()
select log(2.718281828)--底数为e
16.10为底对数:Log10()
select log10(10)--底数为10
17.自然对数e的n次方:Exp()
select exp(1),exp(0)