单行函数
- 特点
- 绝对值函数——ABS(Exp1)
- 取符号函数——SIGN(Exp1)
- Π——PI()
- 最大最小整数
- CEIL(Exp1)
- CEILING(Exp1)
- FLOOR(Exp1)
- 最大最小值
- LEAST(Exp1,Exp2,Exp3...)
- GREATEST(Exp1,Exp2,Exp3...)
- 余数——MOD(Exp1,Exp2)
- 随机值
- RAND()
- RAND(Exp1)
- 保留小数(截留)函数
- ROUND(Exp1)
- ROUND(Exp1,Exp2)
- TRUNCATE(Exp1,Exp2)
- 平方根——SQRT(Exp1)
- 平方——pow(Exp1,Exp2)
特点
- 操作数据对象
- 接受参数返回一个结果
- 只对一行进行变换
- 每行返回一个结果
- 可以嵌套
- 参数可以是一列或一个值
绝对值函数——ABS(Exp1)
ABS(Exp1) 表示的是返回 Exp1 的绝对值。
#取绝对值
SELECT ABS(-1),ABS(1),ABS(2.34),ABS(-3.421),ABS(0)
FROM DUAL;
取符号函数——SIGN(Exp1)
SIGN(Exp1) 表示的是返回 Exp1 的符号,正数返回1,负数返回-1,0返回0。
#取符号
SELECT SIGN(1),SIGN(-2),SIGN(4.365),SIGN(-6.425),SIGN(0)
FROM DUAL;
Π——PI()
PI() 表示的是返回圆周率的值。
#返回圆周率
SELECT PI()
FROM DUAL;
最大最小整数
CEIL(Exp1)
CEIL(Exp1) 表示返回大于或等于某个值的最小整数。
#返回大于或等于某个值的最小整数
SELECT CEIL(3.42),CEIL(2),CEIL(0.11),CEIL(0),CEIL(-0.45),CEIL(-4.53),CEIL(-4)
FROM DUAL;
CEILING(Exp1)
CEILING(Exp1) 表示返回大于或等于某个值的最小整数。
#返回大于或等于某个值的最小整数
SELECT CEILING(3.42),CEILING(2),CEILING(0.11),CEILING(0),CEILING(-0.45),CEILING(-4.53),CEILING(-4)
FROM DUAL;
FLOOR(Exp1)
FLOOR(Exp1) 表示返回小于或等于某个值的最小整数。
#返回小于或等于某个值的最小整数
SELECT FLOOR(3.42),FLOOR(2),FLOOR(0.11),FLOOR(0),FLOOR(-0.45),FLOOR(-4.53),FLOOR(-4)
FROM DUAL;
最大最小值
LEAST(Exp1,Exp2,Exp3…)
LEAST(Exp1,Exp2,Exp3…) 表示的是返回列表中的最小值。
#返回列表中的最小值
SELECT LEAST(1,2,3,4),LEAST(1.2,3.2,0.9),LEAST(3,-0.54,1.32)
FROM DUAL;
GREATEST(Exp1,Exp2,Exp3…)
GREATEST(Exp1,Exp2,Exp3…) 表示的是返回列表中的最大值。
#返回列表中的最大值
SELECT GREATEST(1,2,3,4),GREATEST(1.2,3.2,0.9),GREATEST(3,-0.54,1.32)
FROM DUAL;
余数——MOD(Exp1,Exp2)
MOD(Exp1,Exp2) 表示的是返回 Exp1 除以 Exp2 后的余数。
#返回相除后的余数
SELECT MOD(3,4),MOD(2,1),MOD(4,1.3),MOD(6,-2),MOD(-2,6),MOD(-4,-3),MOD(0,-1),MOD(1,0)
FROM DUAL;
取余规则:
- 正数 % 正数 = 余数
- 正数 % 负数 = 正数 % 负数的绝对值
- 负数 % 正数 = -(负数的绝对值 % 正数)
- 负数 % 负数 = -(负数的绝对值 % 负数的绝对值)
- 0 % 任何非 0 数 = 0
- 任何数 % 0 = null
随机值
RAND()
RAND()表示的是返回0~1的随机值。
#返回随机值
SELECT RAND(),RAND(),RAND()
FROM DUAL;
RAND(Exp1)
RAND(Exp1)表示的是返回0~1的随机值,但Exp1表示种子值,相同的种子值会返回相同的随机值。
#返回随机值
SELECT RAND(1),RAND(1),RAND(2),RAND(3)
FROM DUAL;
保留小数(截留)函数
ROUND(Exp1)
ROUND(Exp1)表示的是返回一个对 Exp1 值进行四舍五入后,最接近于 Exp1 的整数。
#保留小数
SELECT ROUND(3.14159),ROUND(342.645)
FROM DUAL;
ROUND(Exp1,Exp2)
ROUND(Exp1,Exp2) 表示的是返回一个对 Exp1 值进行四舍五入后最接近 Exp1 的值,并保留到小数点后面 Exp2 位。
#保留小数
SELECT ROUND(3.14159,0),ROUND(342.645,1),ROUND(435.648,2),ROUND(354,-1),ROUND(354,-2),ROUND(354,-3)
FROM DUAL;
- 保留小数是进行四舍五入后的保留
- Exp2 为正数表示保留小数点后 Exp2 位位数
- Exp2 为负数表示保留小数点前 Exp2 位位数,如果保留后 Exp1 为0,则按0进行输出
TRUNCATE(Exp1,Exp2)
TRUNCATE(Exp1,Exp2) 表示的是返回一个对 Exp1 值截留 Exp2 位并不进行四舍五入的值。
#保留小数
SELECT TRUNCATE(3.14159,0),TRUNCATE(342.645,1),TRUNCATE(435.648,2),TRUNCATE(354,-1),TRUNCATE(354,-2),TRUNCATE(354,-3)
FROM DUAL;
平方根——SQRT(Exp1)
SQRT(Exp1) 表示的是返回 Exp1 的平方根,当 Exp1 的值为负数时,返回NULL。
#对数进行开方
SELECT SQRT(3),SQRT(3.5),SQRT(4),SQRT(0),SQRT(-3),SQRT(-4.3)
FROM DUAL;
平方——pow(Exp1,Exp2)
pow(Exp1,Exp2) 表示的是计算Exp1的Exp2次方的值。
#对数进行平方
SELECT POW(3,2),POW(-3,3),POW(-3,2),POW(4.1,1.7)
FROM DUAL;