四、SQL函数①(数学函数2)

求正弦值:SIN()函数

它接受一个参数,这个参数为待计算正弦值的表达式。如

SELECT FName,FWeight,SIN(FWeight) FROM T_Person

求余弦值:COS ()函数

它接受一个参数,这个参数为待计算余弦值的表达式。如

SELECT FName,FWeight, COS(FWeight) FROM T_Person

求反正弦值:ASIN()函数

它接受一个参数,这个参数为待计算反正弦值的表达式。如

SELECT FName,FWeight, ASIN(1/FWeight) FROM T_Person

求反余弦值:ACOS()函数

它接受一个参数,这个参数为待计算反余弦值的表达式。如

SELECT FName,FWeight, ACOS(1/FWeight) FROM T_Person

求正切值:TAN()函数

它接受一个参数,这个参数为待计算正切值的表达式。如:

SELECT FName,FWeight, TAN(FWeight) FROM T_Person

求反正切值:ATAN()函数

它接受一个参数,这个参数为待计算反正切值的表达式。如

SELECT FName,FWeight, ATAN(FWeight) FROM T_Person

求2个变量的反正切

ATAN2函数(在MYSQLServer 中这个函数名称为ATN2)用来计算2 个变量的反正切,其使用格式为:ATAN2(X,Y),函数返回2 个变量X 和Y 的反正切。它类似于计算Y/X 的反正切,除了两个参数的符号被用来决定结果的象限。

执行下面的SQL语句:

MYSQL,Oracle,DB2:
SELECT FName,FWeight, ATAN2(FWeight,2) FROM T_Person

MSSQLServer:
SELECT FName,FWeight, ATN2(FWeight,2) FROM T_Person

求余切:COT()函数

它接受一个参数,这个参数为待计算余切值的表达式。在Oracle中不支持这个函数,不过根据余切是正切的倒数这一个特性,可以使用TAN()函数来变通实现。

执行下面的SQL语句:

MYSQL,MSSQLServer,DB2:
SELECT FName,FWeight, COT(FWeight) FROM T_Person

Oracle:
SELECT FName,FWeight,1/tan(FWeight) FROM T_Person

求圆周率π值

MYSQL 和MSSQLServer 中提供了PI()函数用来取得圆周率π值,这个函数不需要使用参数,在Oracle和DB2中不支持PI()函数,不过根据-1的反余弦值等于π值的这一特性,我们可以用ACOS(-1)来变通实现。

执行下面的SQL语句:

MYSQL,MSSQLServer:
SELECT FName,FWeight,FWeight *PI() FROM T_Person

Oracle,DB2:
SELECT FName,FWeight,FWeight * acos(-1) FROM T_Person

弧度制转换为角度制:DEGREES ()函数

它接受一个参数,这个参数为待转换的表达式。在Oracle和DB2 中不支持这个函数,不过根据:角度制=弧度制*180/π这一个特性,可以用变通方式来实现。

执行下面的SQL语句:

MYSQL,MSSQLServer:
SELECT FName,FWeight, DEGREES(FWeight) FROM T_Person

Oracle,DB2:
SELECT FName,FWeight,(FWeight*180)/acos(-1) FROM T_Person

角度制转换为弧度制:RADIANS ()函数

它接受一个参数,这个参数为待转换的表达式。在Oracle和DB2 中不支持这个函数,不过根据:弧度制=角度制*π/180这一个特性,可以用变通方式来实现。

执行下面的SQL语句:

MYSQL,MSSQLServer:
SELECT FName,FWeight, RADIANS(FWeight) FROM T_Person

Oracle,DB2:
SELECT FName,FWeight,(FWeight*acos(-1)/180) FROM T_Person

求符号:SIGN()函数

该用来返回一个数值的符号,如果数值大于0 则返回1,如果数值等于0 则返回0,如果数值小于0 则返回-1。该函数接受一个参数,这个参数为待求绝对值的表达式。
如:

SELECT FName,FWeight-48.68,SIGN(FWeight-48.68) FROM T_Person

求整除余数

MOD()函数用来计算两个数整除后的余数。该函数接受两个参数,第一个参数为除数,而第二个参数则是被除数。
在MYSQL 和Oracle 中提供了对MOD()函数的直接支持;
在MSSQLServer中不支持MOD(),不过MSSQLServer中直接提供了操作符“%”用来计算两个数的整除余数;
DB2中不支持求整除余数操作。

执行下面的SQL语句:

MYSQL,Oracle:
SELECT FName,FWeight,MOD(FWeight , 5) FROM T_Person

MSSQLServer:
SELECT FName,FWeight,FWeight % 5 FROM T_Person

求自然对数:LOG()函数

该用来计算一个数的自然对数值。该函数接受一个参数,此参数为待计算自然对数的表达式,在Oracle中这个函数的名称为LN()。

执行下面的SQL语句:

MYSQL,MSSQLServer,DB2:
SELECT FName,FWeight, LOG(FWeight) FROM T_Person

Oracle:
SELECT FName,FWeight, LN(FWeight) FROM T_Person

求以10为底的对数

LOG10()函数用来计算一个数的以10 为底的对数值。该函数接受一个参数,此参数为待计算对数的表达式,在Oracle中不支持这个函数,不过Oracle中有一个可以计算任意数为底的对数的函数LOG(m,n),它用来计算以m为底n的对数,我们将m设为常量10 就可以了。

执行下面的SQL语句:

MYSQL,MSSQLServer,DB2:
SELECT FName,FWeight, LOG10(FWeight) FROM T_Person

Oracle:
SELECT FName,FWeight,LOG(10,FWeight) FROM T_Person

求幂:POWER(X,Y)函数用来计算X的Y次幂。

执行下面的SQL语句:

SELECT FName,FWeight, POWER(1.18,FWeight) FROM T_Person

猜你喜欢

转载自blog.csdn.net/qq_41389678/article/details/112004992
今日推荐