首页 > 数据库 > Oracle > Oracle SQL函数(三) Hacker
2
数字函数可以用于计算。数字函数可以接收输入的数字参数,这些数字可以来自于一个表中的数字列,也可以是一个结果为数字的表达式。数字函数会对这些输入的数字进行计算,并返回一个数字结果。数字函数的一个例子是SQRT(x),该函数返回x的平方根。
表1-2列出了一些常用的数字函数。
表1-2
|
函 |
说 |
例 |
|
ABS(x) |
返回x的绝对值 |
ABS(10)
ABS(-10) |
|
ACOS(x) |
返回x的反余弦 |
ACOS(1)
ACOS(-1) |
|
ASIN(x) |
返回x的反正弦 |
ASIN(1)
ASIN(-1) |
|
ATAN(x) |
返回x的反正切 |
ATAN(1)
ATAN(-1) |
|
ATAN2(x, |
返回x |
ATAN2(1, |
|
BITAND(x, |
返回对x和y进行位与(AND)操作的结果 |
BITAND(0,
BITAND(0,
BITAND(1,
BITAND(1,
BITAND(1010, |
|
COS(x) |
返回x的余弦,其中x是弧度 |
COS(90
COS(45 |
|
COSH(x) |
返回x的双曲余弦函数 |
COSH(3.1415926) |
|
CEIL(x) |
返回大于或等于x的最小整数 |
CEIL(5.8)
CEIL(-5.2) |
|
EXP(x) |
返回e的x次幂,其中e约等于2.71828183 |
EXP(1)
EXP(2) |
|
FLOOR(x) |
返回小于或等于x的最大整数 |
FLOOR(5.8)
FLOOR(-5.2) |
|
LOG(x, |
返回以x为底y的对数 |
LOG(2,
LOG(2, |
|
LN(x) |
返回x的自然对数 |
LN(2.71828183) |
|
MOD(x, |
返回x除以y的余数 |
MOD(8,
MOD(8, |
|
POWER(x, |
返回x的y次幂 |
POWER(2,
POWER(2, |
|
ROUND(x[, |
返回对x取整的结果;y为可选参数,说明对第几位小数取整。如果没有指定y,则对x在0位小数处取整;如果y是负数,则对x在小数点的左边的第|y|位处取整 |
ROUND(5.75)
ROUND(5.75,
ROUND(5.75, |
|
SIGN(x) |
如果x是负数,则返回-1;如果x是正数则返回1;如果x为0则返回0 |
SIGN(-5)
SIGN(5)
SIGN(0) |
|
SIN(x) |
返回x的正弦函数 |
SIN(0) |
|
SINH(x) |
返回x的双曲正弦函数 |
SINH(1) |
|
SQRT(x) |
返回x的平方根 |
SQRT(25)
SQRT(5) |
|
TAN(x) |
返回x的正切函数 |
TAN(0) |
|
TANH(x) |
返回x的双曲正切函数 |
TANH(1) |
|
TRUNC(x[, |
返回对x截断的结果;y为可选参数,说明对第几位小数截断。如果没有指定y,则对x在0位小数处截断;如果y是负数,则对x在小数点左边的第|y|位处截断 |
TRUNC(5.75)
TRUNC(5.75,
TRUNC(5.75, |
1.
ABS(x)用于得到x的绝对值。一个数字的绝对值就是这个数字去掉符号后得到的数字值。下面这个查询给出了10和-10的绝对值:
SELECT
FROM
ABS(10)
----------
10
可以看到,10的绝对值是10,-10的绝对值也是10。
当然,任何数字函数的输入参数不一定是字面数字。输入参数可以是一个表中的数字列,或者更一般地讲,可以是任意有效的表达式。下面这个例子显示了products表中前3个产品的price列减去30之后的绝对值:
SELECT
FROM
WHERE
PRODUCT_ID
--------------
1
2
3
2.
CEIL(x)用于获得大于或等于x的最小整数。下面这个查询使用CEIL函数得到分别显示了5.8和-5.2的上取整后的结果:
SELECT
FROM
CEIL(5.8)
----------
6
5.8上取整的结果是6;这是因为6是大于或等于5.8的最小整数。而-5.2上取整的结果是-5;这是因为-5.2是负数,大于它的最小整数是-5。
3.
FLOOR(x)用于获得小于或等于x的最大整数。下面这个查询使用FLOOR函数分别显示了5.8和-5.2的下取整后的结果:
SELECT
FROM
FLOOR(5.8)
------------
5
5.8下取整的结果是5;这是因为5是小于或等于5.8的最大整数。而-5.2下取整的结果是-6;这是因为-5.2是负数,小于它的最大整数是-6。
4.
MOD(x,
SELECT
FROM
MOD(8,3)
----------
2
8除以3的余数是2;这是因为8中减去2个3之后,就只剩下2了——这就是余数。而8除以4的余数是0;这是因为8中减去2个4之后,就只剩下0了。
5.
POWER(x,
SELECT
FROM
POWER(2,1)
-----------
2
2的1次幂等价与2×1,结果是2;2的3次幂等价与2×2×2,结果是8。
6.
ROUND(x,
下面这个查询使用ROUND函数分别显示了对5.75在0位、1位和-1位小数处取整的结果:
SELECT
FROM
ROUND(5.75)
-----------
6
5.75在第0位小数处取整结果为6。5.75在(小数点右边的)第1位小数处取整结果为5.8。5.75在(因为使用了符号,所以应该是小数点左边的)第1位小数处取整结果为10。
7.
SIGN(x)用于获得x的符号。如果x为负数,SIGN(x)就返回-1;如果x为正数,SIGN(x)就返回1;如果x为0,SIGN(x)就返回0。下面这个查询使用SIGN函数分别显示了-5、5和0的符号:
SELECT
FROM
SIGN(-5)
----------
-1
-5的符号是-1;5的符号是1;0的符号是0。
8.
SQRT
SELECT
FROM
SQRT(25)
----------
5
25的平方根是5;5的平方根大约是2.236。
9.
TRUNC
SELECT
FROM
TRUNC(5.75)
---------------
5
可以从上面这个例子中看到,5.75在第0位小数处截断结果为5。5.75在(小数点右边的)第1位小数处截断结果为5.7。5.75在(因为使用了负号,所以应该是小数点左边的)第1位小数处截断结果为0。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/22446133/viewspace-1115686/ ,如需转载,请注明出处,否则将追究法律责任。