数值函数
函数 | 小写 | 用法 |
---|---|---|
ABS(x) | absolute value | 返回x的绝对值 |
SIGN(x) | sign | 返回x的符号。正数返回1,负数返回-1,0返回0 |
PI() | π | 返回圆周率的值,默认返回3.141593 |
CEIL(x),CEILING(x) | ceiling 天花板 | 返回x向上取整的值 |
FLOOR(x) | floor 地板 | 返回x向下取整的值 |
LEAST(e1,e2,e3...) | least 最小 | 返回列表中的最小值 |
GREATEST(e1,e2,e3...) | greatest 最大 | 返回列表中的最大值 |
MOD(x,y) | modular arithmetic 求余 | 返回x除以y后的余数 |
RAND() | random | 返回0~1的随机数 |
RAND(x) | 返回0~1的随机数,x用作种子值,相同的x值会产生相同的随机数 | |
ROUND(x) | round | 返回对x进行四舍五入的结果 |
ROUND(x,y) | 返回对x进行四舍五入,保留y位小数的结果 | |
TRUNCATE(x,y) | truncate | 返回对x截取为y位小数的结果 |
SQRT(x) | square root calculations 非负实数平方根 | 返回x的平方根,x为负数时,返回null |
举例1:对数字操作
SELECT ABS(-567),ABS(13), SIGN(-31),SIGN(56), PI(), CEIL(13.44),CEILING(-31.55), FLOOR(56.77),FLOOR(-13.22), MOD(13,4) FROM DUAL;
举例2:随机数
SELECT RAND(),RAND(), RAND(10),RAND(10), RAND(-1),RAND(-1) FROM DUAL;
举例3:四舍五入
SELECT ROUND(13.44),ROUND(13.233,2),ROUND(13.234,-1), ROUND(13.56),ROUND(13.556,2),ROUND(13.567,-1), TRUNCATE(12.66,1),TRUNCATE(12.66,-1) FROM DUAL;
图二中OC半径和CD两条线相等时夹角为1弧度。
圆的周长C = 2πr,
则C/r = 2π,即一个圆360°等于2π弧度。
1弧度 = 360°/2π = 180°/π
函数 | 小写 | 用法 |
---|---|---|
RADIANS(x) | radians | 将角度x转化为弧度 |
DEGREES(x) | degrees | 将弧度x转化为角度 |
举例1:
SELECT RADIANS(30),RADIANS(60),RADIANS(90), DEGREES(2*PI()),DEGREES(RADIANS(90)) FROM DUAL;
tan(x)
和tan2(m,n)
计算两个点时,P1(x1,y1),P2(x2,y2)
tan((y2-y1)/(x2-x1))
tan2(y2-y1,x2-x1)
当x2-x1 = 0
时,tan(x)
函数会报错,而tan2(m,n)
则不会
y = sinx
表示由x求y
由y求x则用x = asiny
表示
sin(x)中x为弧度,asin(x)中x取值在(-1,1)范围内,超出返回null
函数 | 小写 | 用法 |
---|---|---|
SIN(x) | sin | 返回x的正弦值 |
ASIN(x) | asin | 返回x的反正弦值,如果x的值不在-1到1之间,则返回null |
COS(x) | cos | 返回x的余弦值 |
ACOS(x) | acos | 返回x的反余弦值,如果x的值不在-1到1之间,则返回null |
TAN(x) | tan | 返回x的正切值 |
ATAN(x) | atan | 返回x的反正切值 |
ATAN2(m,n) | atan2 | 返回两个参数的反正切值 |
COT(x) | cot | 返回x的余切值 |
SELECT SIN(PI()/2),ASIN(1), SIN(RADIANS(30)),DEGREES(ASIN(1)), TAN(RADIANS(45)),DEGREES(ATAN(1)),DEGREES(ATAN2(1,1)) FROM DUAL;
函数 | 小写 | 用法 |
---|---|---|
POW(x,y),POWER(x,y) | power | 返回x的y次方 |
EXP(x) | exponential 指数曲线 | 返回e的x次方,e为常数 |
LN(x),LOG(x) | logarithmic function 对数函数 | 返回以e为底时x的对数,x<=0时,返回null |
LOG10(x) | 返回以10为底时x的对数,x<=0时,返回null | |
LOG2(x) | 返回以2为底时x的对数,x<0时,返回null |
SELECT POW(2,3),POWER(2,4), EXP(2), LN(10),LN(EXP(1)), LOG10(10),LOG2(4) FROM DUAL;
函数 | 小写 | 用法 |
---|---|---|
BIN(x) | binary 二进制 | 返回x的二进制编码 |
OCT(x) | octal 八进制 | 返回x的八进制编码 |
HEX(x) | hexadecimal 十六进制 | 返回x的十六进制编码 |
CONV(x,f1,f2) | conversion 转换 | 返回f1进制数变成f2进制数 |
SELECT BIN(10), HEX(10), OCT(10), CONV(101,2,10) -- 把二进制数101,变为十进制并返回 FROM DUAL;