1. 绝对值函数 abs(x)
- 功能:返回x的绝对值
- 参数:数值型表达式
- 返回:x的绝对值
SQL和执行结果:
SELECT ABS(-12.345), ABS(67.890), ABS(0) FROM dual;
2. 正负1函数 sign(x)
- 功能:根据x的值,以±1或0的形式,返回x的正负号
- 参数:数值型表达式
- 返回:x若为正值返回1,负值返回-1,0返回0
SQL和执行结果:
SELECT SIGN(0), SIGN(-1.2345), SIGN(6.7890) FROM dual;
3.1 向上取整函数ceil(x)
- 功能:获得大于等于x的最小整数
- 参数:数值型表达式
- 返回:
1,一个整数
2,该整数大于等于x
3,该整数和x之间不存在其他整数
SQL和执行结果:
SELECT CEIL(-0.5),CEIL(-2.1),CEIL(-15.8),ceil(0),CEIL(0.5),CEIL(2.1),CEIL(-15.8) FROM dual;
3.2 向下取整函数floor(x)
- 功能:获得小于等于x的最大整数
- 参数:数值型表达式
- 返回:
1,一个整数
2,该整数小于等于x
3,该整数和x之间不存在其他整数
SQL和执行结果:
SELECT FLOOR(-0.5),FLOOR(-2.1),FLOOR(-15.8),FLOOR(0),FLOOR(0.5),FLOOR(2.1),FLOOR(15.8) FROM dual;
记忆:
- Ceil意为“天花板”,ceil()函数是“向上取整函数”(天花板在上)
- Floor意为“地板”,floor()函数是“向下取整函数”(地板在下)
4. 四舍五入函数round(x[,y])
- 功能:计算对x四舍五入保留y位小数
- 参数:x,y 数值型表达式
- 返回:对x四舍五入保留y位小数的结果
- x可以是正负整数或小数
- y默认为0,可以是正负整数或小数
- y为小数时,截取y的整数部分
- y为正数时,从小数点右边y位开始四舍五入
y为负数时,从小数点左边y位开始四舍五入
SQL和执行结果:
SELECT ROUND(1.234567), ROUND(-1.234567, 1), ROUND(1.234567, 2.3), ROUND(-1.234567, 4.5), ROUND(1234567.89, -5), ROUND(-1.234567, 9) FROM dual;
5. 截取函数trunc(x[,y])
- 功能:计算对x截取y位
- 参数:x,y 数值型表达式
- 返回:对x截取y位的结果
- 截取不会有任何进位或四舍五入
- x可以是正负整数或小数
- y默认为0,可以是正负整数或小数
- y为小数时,截取y的整数部分
- y为正数时,从小数点右边y位开始截取
y为负数时,从小数点左边y位开始截取
SQL和执行结果:
SELECT TRUNC(1.234567), TRUNC(-1.234567, 1), TRUNC(1.234567, 2.3), TRUNC(-1.234567, 4.5), TRUNC(1234567.89, -5), TRUNC(-1.234567, 9) FROM dual;
6. 取余函数mod(x,y)
- 功能:计算x/y的余数
- 参数:x,y 数值型表达式
- 返回:x/y的余数
SQL和执行结果:
SELECT MOD(81, 3), MOD(100, 101), MOD(-123.45, 6.7), MOD(10, -3.3), MOD(-78.9, -2) FROM dual;
7. 开方函数sqrt(x)
- 功能:计算x的平方根
- 参数:x 数值型表达式,必须大于等于0
- 返回:x的平方根
SQL和执行结果:
SELECT SQRT(81), SQRT(2), SQRT(0), SQRT(3.5) FROM dual;
8. 幂函数 power(x,y)
- 功能:计算x的y次幂
- 参数:x,y 数值型表达式
- 返回:x的y次幂
特别的:当x为常数e时的幂函数exp(y)
- 功能:计算常数e的y次幂
- 参数:y 数值型表达式
- 返回:e的y次幂
SQL和执行结果:
SELECT EXP(2), POWER(3, 2), POWER(-0.5, 3), POWER(10, -1), POWER(81, 0.5) FROM dual;
9. 对数函数 log(x,y)
- 功能:计算以x为底的y的对数
- 参数:x,y 数值型表达式,且均大于0
- 返回:以x为底的y的对数
特别的:当x为常数e时的y的对数ln(y)
- 功能:计算以常数e为底的y的对数
- 参数:y 数值型表达式,且大于0
- 返回:以e为底的y的对数
SQL和执行结果:
SELECT LOG(1.23, 45.67), LOG(8, 9), LN(123.45), LN(678) FROM dual;