日期:2014-05-16 浏览次数:20488 次
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