基本函数

函数 用法
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

举例:

  1. SELECT ABS(-123),ABS(32),SIGN(-23),SIGN(43),PI(),CEIL(32.32),CEILING(-43.23),FLOOR(32.32),
  2. FLOOR(-43.23),MOD(12,5)
  3. FROM DUAL;

image.png

  1. SELECT RAND(),RAND(),RAND(10),RAND(10),RAND(-1),RAND(-1)
  2. FROM DUAL;

image.png

  1. SELECT ROUND(12.33),ROUND(12.343,2),ROUND(12.324,-1),TRUNCATE(12.66,1),TRUNCATE(12.66,-1)
  2. FROM DUAL;

image.png

角度与弧度互换函数

函数 用法
RADIANS(x) 将角度转化为弧度,其中,参数 x 为角度值
DEGREES(x) 将弧度转化为角度,其中,参数 x 为弧度值
  1. SELECT RADIANS(30),RADIANS(60),RADIANS(90),DEGREES(2*PI()),DEGREES(RADIANS(60))
  2. 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) 函数的使用示例如下:

  1. SELECT SIN(RADIANS(30)),DEGREES(ASIN(1)),TAN(RADIANS(45)),DEGREES(ATAN(1)),DEGREES(ATAN2(1,1))
  2. 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 进制数
  1. SELECT BIN(10),HEX(10),OCT(10),CONV(10,2,8)
  2. FROM DUAL;