基本函数
函数 |
用法 |
ABS(x) |
返回 x 的绝对值 |
SIGN(x) |
返回 x 的符号。正数返回 1,负数返回 -1,0 返回 0 |
PI() |
返回圆周率的值 |
CEIL(x) ,CEILING(x) |
返回大于或等于某个值的最小整数 |
FLOOR(x) |
返回小于或等于某个值的最大整数 |
LEAST(e1,e2,e3…) |
返回列表中的最小值 |
GREATEST(e1,e2,e3…) |
返回列表中的最大值 |
MOD(x,y) |
返回 x 除以 y 后的余数 |
RAND() |
返回 0~1 的随机值 |
RAND(x) |
返回 0~1 的随机值,其中x的值用作种子值,相同的X值会产生相同的随机数 |
ROUND(x) |
返回一个对 x 的值进行四舍五入后,最接近于X的整数 |
ROUND(x,y) |
返回一个对 x 的值进行四舍五入后最接近 x 的值,并保留到小数点后面 y 位 |
TRUNCATE(x,y) |
返回数字 x 截断为 y 位小数的结果 |
SQRT(x) |
返回 x 的平方根。当 x 的值为负数时,返回 NULL |
举例:
SELECT ABS(-123),ABS(32),SIGN(-23),SIGN(43),PI(),CEIL(32.32),CEILING(-43.23),FLOOR(32.32),
FLOOR(-43.23),MOD(12,5)
FROM DUAL;
SELECT RAND(),RAND(),RAND(10),RAND(10),RAND(-1),RAND(-1)
FROM DUAL;
SELECT ROUND(12.33),ROUND(12.343,2),ROUND(12.324,-1),TRUNCATE(12.66,1),TRUNCATE(12.66,-1)
FROM DUAL;
角度与弧度互换函数
函数 |
用法 |
RADIANS(x) |
将角度转化为弧度,其中,参数 x 为角度值 |
DEGREES(x) |
将弧度转化为角度,其中,参数 x 为弧度值 |
SELECT RADIANS(30),RADIANS(60),RADIANS(90),DEGREES(2*PI()),DEGREES(RADIANS(60))
FROM DUAL;
三角函数
函数 |
用法 |
SIN(x) |
返回 x 的正弦值,其中,参数 x 为弧度值 |
ASIN(x) |
返回 x 的反正弦值,即获取正弦为x的值。如果 x 的值不在 -1 到 1 之间,则返回 NULL |
COS(x) |
返回 x 的余弦值,其中,参数x为弧度值 |
ACOS(x) |
返回 x 的反余弦值,即获取余弦为 x 的值。如果 x 的值不在 -1 到1之间,则返回 NULL |
TAN(x) |
返回 x 的正切值,其中,参数 x 为弧度值 |
ATAN(x) |
返回 x 的反正切值,即返回正切值为 x 的值 |
ATAN2(m,n) |
返回两个参数的反正切值 |
COT(x) |
返回 x 的余切值,其中,x 为弧度值 |
ATAN2(M,N)
函数返回两个参数的反正切值。
与 ATAN(x)
函数相比,ATAN2(m,n)
需要两个参数,例如有两个点 point(x1,y1) 和 point(x2,y2),使用 ATAN(x)
函数计算反正切值为 ATAN((y2-y1)/(x2-x1))
,使用 ATAN2(m,n)
计算反正切值则为 ATAN2(y2-y1,x2-x1)
。由使用方式可以看出,当 x2-x1 等于 0时,ATAN(x) 函数会报错,而 ATAN2(m,n)
函数则仍然可以计算。
ATAN2(m,n)
函数的使用示例如下:
SELECT SIN(RADIANS(30)),DEGREES(ASIN(1)),TAN(RADIANS(45)),DEGREES(ATAN(1)),DEGREES(ATAN2(1,1))
FROM DUAL;
指数与对数
函数 |
用法 |
POW(x,y) ,POWER(x,y) |
返回 x 的 y 次方 |
EXP(x) |
返回 e 的 x 次方 |
LN(x) ,LOG(x) |
返回以 e 为底的 x 的对数,当 x <= 0 时,返回的结果为 NULL |
LOG10(x) |
返回以 10 为底的 x 的对数,当 x <= 0 时,返回的结果为 NULL |
LOG2(x) |
返回以 2 为底的 x 的对数,当 x <= 0 时,返回 NULL |
进制间的转换
函数 |
用法 |
BIN(x) |
返回 x 的二进制编码 |
HEX(x) |
返回 x 的十六进制编码 |
OCT(x) |
返回 x 的八进制编码 |
CONV(x,f1,f2) |
返回 f1 进制数变成 f2 进制数 |
SELECT BIN(10),HEX(10),OCT(10),CONV(10,2,8)
FROM DUAL;