日期:2014-05-16  浏览次数:20457 次

oracle中的函数(一)

oracle中的函数
这些函数可以用在select where having  order by这些关键词后,
起着对某个常量或者某列数据进行相应的转化后在进行使用
例如
select ename,sal,round(sal,-2) from emp  where round(sal,-2)>=3000;
通过使用这些函数,可以帮助我们实现满足一些特殊要求的查询数学函数

 

数学函数

round:使用格式为  round(n[,m])其中[] 中的内容可以省略
select round(123.456),round(123.456,1),round(123.456,2),round(123.456,-1) from dual;
结果为
ROUND(123.456) ROUND(123.456,1) ROUND(123.456,2) ROUND(123.456,-1)
-------------- ---------------- ---------------- -----------------
           123            123.5           123.46               120

后面的参数指定了返回值的精度,或者说是从小数点第几位开始四舍五入,
如果不带后面的参数,则默认为四舍五入取整数,该例子中采用的是常量,
from后用的是dual,在上一篇文章中介绍了dual这个表,这个表只有一行数据,
上面的sql只有一行需要返回,返回的内容由select关键字决定,在实际应用中,参数可以是一个列名,例如
select round(sal,-2) ,ename from emp;

ceil:使用格式  ceil(n) 
select ceil(10.9),ceil(10.123) from dual;
结果为
CEIL(10.9) CEIL(10.123)
---------- ------------
        11           11
ceil函数的作用是将n的小数部分舍掉,整数部分加1

floor:格式floor(n)
select floor(10.9),floor(10.123) from dual;
结果为
FLOOR(10.9) FLOOR(10.123)
----------- -------------
         10            10
ceil不同的是该函数是将n的小数部分舍掉,整数部分不变。
在英文中ceil是天花板的意思,floor是地板的意思,
oracle的函数中,ceil"向上"取整数,而floor"向下"取整数,这应该跟英文意思多少有点关系吧

abs:格式abs(n)
select abs(-1),abs(0),abs(1) from dual;
结果为
   ABS(-1)     ABS(0)     ABS(1)
---------- ---------- ----------
         1          0          1
abs