ITPub博客

首页 > 数据库 > Oracle > Oracle   SQL函数(三) Hacker

Oracle   SQL函数(三) Hacker

Oracle 作者:zxhpg 时间:2013-11-20 16:44:53 0 删除 编辑

 数字函数

数字函数可以用于计算。数字函数可以接收输入的数字参数,这些数字可以来自于一个表中的数字列,也可以是一个结果为数字的表达式。数字函数会对这些输入的数字进行计算,并返回一个数字结果。数字函数的一个例子是SQRT(x),该函数返回x的平方根。

表1-2列出了一些常用的数字函数。

表1-2  数 字 函 

函    

说    

例    

ABS(x)

返回x的绝对值

ABS(10) 10 

ABS(-10) 10

ACOS(x)

返回x的反余弦

ACOS(1) 

ACOS(-1) 3.14159265

ASIN(x) 

返回x的反正弦

ASIN(1) 1.57079633

ASIN(-1) -1.5707963

ATAN(x) 

返回x的反正切

ATAN(1) .785398163

ATAN(-1) -.78539816

ATAN2(x, y) 

返回x 和y的反正切

ATAN2(1, -1) 2.35619449

BITAND(x, y)

返回对x和y进行位与(AND)操作的结果

BITAND(0, 0) 0

BITAND(0, 1) 0

BITAND(1, 0) 0

BITAND(1, 1) 1

BITAND(1010, 1100) 64

COS(x) 

返回x的余弦,其中x是弧度

COS(90 3.1415926) 1

COS(45 3.1415926) -1

COSH(x) 

返回x的双曲余弦函数

COSH(3.1415926) 11.5919527

CEIL(x) 

返回大于或等于x的最小整数

CEIL(5.8) 6

CEIL(-5.2) -5

EXP(x) 

返回e的x次幂,其中e约等于2.71828183

EXP(1) 2.71828183

EXP(2) 7.3890561

FLOOR(x) 

返回小于或等于x的最大整数 

FLOOR(5.8) 5

FLOOR(-5.2) -6

LOG(x, y) 

返回以x为底y的对数

LOG(2, 4) 2

LOG(2, 5) 2.32192809

LN(x) 

返回x的自然对数

LN(2.71828183) 1

MOD(x, y) 

返回x除以y的余数

MOD(8, 3) 2

MOD(8, 4) 0

POWER(x, y)

返回x的y次幂

POWER(2, 1) 2

POWER(2, 3) 8

ROUND(x[, y]) 

返回对x取整的结果;y为可选参数,说明对第几位小数取整。如果没有指定y,则对x在0位小数处取整;如果y是负数,则对x在小数点的左边的第|y|位处取整

ROUND(5.75) 6

ROUND(5.75, 1) 5.8

ROUND(5.75, -1) 10

SIGN(x) 

如果x是负数,则返回-1;如果x是正数则返回1;如果x为0则返回0

SIGN(-5) -1

SIGN(5) 1

SIGN(0) 0

SIN(x) 

返回x的正弦函数

SIN(0) 0

SINH(x) 

返回x的双曲正弦函数

SINH(1) 1.17520119

SQRT(x) 

返回x的平方根

SQRT(25) 5

SQRT(5) 2.23606798

TAN(x) 

返回x的正切函数

TAN(0) 0

TANH(x) 

返回x的双曲正切函数

TANH(1) .761594156

TRUNC(x[, y]) 

返回对x截断的结果;y为可选参数,说明对第几位小数截断。如果没有指定y,则对x在0位小数处截断;如果y是负数,则对x在小数点左边的第|y|位处截断

TRUNC(5.75) 5

TRUNC(5.75, 1) 5.7

TRUNC(5.75, -1) 0

1. ABS()

ABS(x)用于得到x的绝对值。一个数字的绝对值就是这个数字去掉符号后得到的数字值。下面这个查询给出了10和-10的绝对值:

SELECT ABS(10), ABS(-10)

FROM dual;

ABS(10)       ABS(-10)

----------    -----------

10            10

可以看到,10的绝对值是10,-10的绝对值也是10。

当然,任何数字函数的输入参数不一定是字面数字。输入参数可以是一个表中的数字列,或者更一般地讲,可以是任意有效的表达式。下面这个例子显示了products表中前3个产品的price列减去30之后的绝对值:

SELECT product_id, price, price – 30, ABS(price 30)

FROM products

WHERE product_id 4;

PRODUCT_ID         PRICE     PRICE-30     ABS(PRICE-30)

--------------    -------    --------     -------------

       19.95      -10.05       10.05

          30                     0

       25.99       -4.01        4.01

2. CEIL()

CEIL(x)用于获得大于或等于x的最小整数。下面这个查询使用CEIL函数得到分别显示了5.8和-5.2的上取整后的结果:

SELECT CEIL(5.8), CEIL(-5.2)

FROM dual;

CEIL(5.8)    CEIL(-5.2)

----------   ----------

           -5

5.8上取整的结果是6;这是因为6是大于或等于5.8的最小整数。而-5.2上取整的结果是-5;这是因为-5.2是负数,大于它的最小整数是-5。

3. FLOOR()

FLOOR(x)用于获得小于或等于x的最大整数。下面这个查询使用FLOOR函数分别显示了5.8和-5.2的下取整后的结果:

SELECT FLOOR(5.8), FLOOR(-5.2)

FROM dual;

FLOOR(5.8)      FLOOR(-5.2)

------------      -----------

               -6

5.8下取整的结果是5;这是因为5是小于或等于5.8的最大整数。而-5.2下取整的结果是-6;这是因为-5.2是负数,小于它的最大整数是-6。

4. MOD()

MOD(x, y)用于计算x除以y所得的余数。下面这个查询使用MOD函数分别显示了8除以3和4的余数:

SELECT MOD(8, 3), MOD(8, 4)

FROM dual;

MOD(8,3)     MOD(8,4)

----------   ----------

           0

8除以3的余数是2;这是因为8中减去2个3之后,就只剩下2了——这就是余数。而8除以4的余数是0;这是因为8中减去2个4之后,就只剩下0了。

5. POWER()

POWER(x, y)用于计算x的y次幂。下面这个查询使用POWER函数分别显示了2的1次幂和3次幂:

SELECT POWER(2, 1), POWER(2, 3)

FROM dual;

POWER(2,1)    POWER(2,3)

-----------   --------------

            8

2的1次幂等价与2×1,结果是2;2的3次幂等价与2×2×2,结果是8。

6. ROUND()

ROUND(x, [y])用于计算对x取整的结果;其中y为可选参数,说明对第几位小数取整。如果没有指定y,则对x在0位小数处取整;如果y是负数,则对x在小数点的左边的第|y|位处取整。

下面这个查询使用ROUND函数分别显示了对5.75在0位、1位和-1位小数处取整的结果: 

SELECT ROUND(5.75), ROUND(5.75, 1), ROUND(5.75, -1)

FROM dual;

ROUND(5.75)   ROUND(5.75,1)   ROUND(5.75,-1)

-----------   -------------   --------------

                5.8                10

5.75在第0位小数处取整结果为6。5.75在(小数点右边的)第1位小数处取整结果为5.8。5.75在(因为使用了符号,所以应该是小数点左边的)第1位小数处取整结果为10。

7. SIGN()

SIGN(x)用于获得x的符号。如果x为负数,SIGN(x)就返回-1;如果x为正数,SIGN(x)就返回1;如果x为0,SIGN(x)就返回0。下面这个查询使用SIGN函数分别显示了-5、5和0的符号: 

SELECT SIGN(-5), SIGN(5), SIGN(0)

FROM dual;

SIGN(-5)     SIGN(5)     SIGN(0)

----------   ----------  ---------

-1                       0

-5的符号是-1;5的符号是1;0的符号是0。

8. SQRT()

SQRT (x)函数用于计算x的平方根。下面这个查询使用SQRT()函数分别显示了25和5的平方根: 

SELECT SQRT(25),  SQRT(5)

FROM dual;

SQRT(25)     SQRT(5)

----------   ------------

          2.23606798

25的平方根是5;5的平方根大约是2.236。

9. TRUNC()

TRUNC (x, [y])函数用于计算对x截断的结果;y为可选参数,说明对第几位小数截断。如果没有指定y,则对x在0位小数处截断;如果y是负数,则对x在小数点的左边的第|y|位处截断。下面这个查询显示了对5.75在0位、1位和-1位小数处截断的结果:

SELECT TRUNC(5.75), TRUNC(5.75, 1), TRUNC(5.75, -1)

FROM dual;

TRUNC(5.75)      TRUNC(5.75,1)      TRUNC(5.75,-1)

---------------  ---------------    --------------

                 5.7                0

可以从上面这个例子中看到,5.75在第0位小数处截断结果为5。5.75在(小数点右边的)第1位小数处截断结果为5.7。5.75在(因为使用了负号,所以应该是小数点左边的)第1位小数处截断结果为0。

 

<!-- 正文结束 -->

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22446133/viewspace-1115686/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
下一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2009-08-30