(转)oracle常用函数一:数字函数

news/2024/7/4 9:33:12

1,abs(n) 返回n的绝对值

[plain]  view plain  copy
 
  1. SQL> select abs(-1),abs(1) from dual;  
  2.   
  3.    ABS(-1)     ABS(1)  
  4. ---------- ----------  
  5.          1          1  

2,ceil(n) 返回大于等于n的最小整数

[plain]  view plain  copy
 
  1. SQL> select ceil(10),ceil(10.5),ceil(-10.5) from dual;  
  2.   
  3.   CEIL(10) CEIL(10.5) CEIL(-10.5)  
  4. ---------- ---------- -----------  
  5.         10         11         -10  

3,floor(n) 返回小于等于n的最大整数

[plain]  view plain  copy
 
  1. SQL> select floor(10),floor(10.5),floor(-10.5) from dual;  
  2.   
  3.  FLOOR(10) FLOOR(10.5) FLOOR(-10.5)  
  4. ---------- ----------- ------------  
  5.         10          10          -11  

4,greatest(expr[,expr...])返回参数列表的最大值,可用于数字,字符串,日期

[plain]  view plain  copy
 
  1. SQL> select greatest(1,2,3) from dual;  
  2.   
  3. GREATEST(1,2,3)  
  4. ---------------  
  5.               3  
  6.   
  7. SQL> select greatest('a','b') from dual;  
  8.   
  9. GR  
  10. --  
  11. b  
  12.   
  13. SQL> select greatest(to_date('2011','yyyy'),to_date('2012','yyyy')) from dual;  
  14.   
  15. GREATEST(TO_DA  
  16. --------------  
  17. 01-11月-12  

如果参数列表为混合类型,Oracle在选择最大值之前将选择第一个参数类型作为基准类型并试图将其他参数转换为第一个参数的类型

[plain]  view plain  copy
 
  1. SQL> select greatest(1,'abc') from dual;  
  2. select greatest(1,'abc') from dual  
  3.                   *  
  4. ERROR at line 1:  
  5. ORA-01722: invalid number  
  6.   
  7.   
  8. SQL> select greatest(1,'111') from dual;  
  9.   
  10. GREATEST(1,'111')  
  11. -----------------  
  12.               111  

5,least(expr[,expr...]) 选择参数列表最小值,和greatest函数相反,参数规则相同

6,mod(m,n) m除以n的余数

[plain]  view plain  copy
 
  1. SQL> select mod(11,10) from dual;  
  2.   
  3. MOD(11,10)  
  4. ----------  
  5.          1  

7,power(m,n) m的n次方,m为非0数字,如果m为正数,n可以为正数或负数,如果m为负数,n必须为正整数

[plain]  view plain  copy
 
  1. SQL> select power(2,2),power(-1,2),power(1,0) from dual;  
  2.   
  3. POWER(2,2) POWER(-1,2) POWER(1,0)  
  4. ---------- ----------- ----------  
  5.          4           1          1  
  6.   
  7. SQL> select power(-2,0.5) from dual;  
  8. select power(-2,0.5) from dual  
  9.              *  
  10. ERROR at line 1:  
  11. ORA-01428: argument '-2' is out of range  

8,round(m,n) 对十进制数字m,根据n进行四舍五入计算

[plain]  view plain  copy
 
  1. SQL> select round(123.5),round(123.46,1),round(126.45,-1) from dual;  
  2.   
  3. ROUND(123.5) ROUND(123.46,1) ROUND(126.45,-1)  
  4. ------------ --------------- ----------------  
  5.          124           123.5              130  

9,sign(n) 返回n的符号,n为负数返回-1,n为0返回0,n为正数返回1

[plain]  view plain  copy
 
  1. SQL> select sign(-11),sign(0),sign(99) from dual;  
  2.   
  3.  SIGN(-11)    SIGN(0)   SIGN(99)  
  4. ---------- ---------- ----------  
  5.         -1          0          1  

10,sqrt(n) n的平方根,n不能为负数

[plain]  view plain  copy
 
  1. SQL> select sqrt(4),sqrt(0),sqrt(80) from dual;  
  2.   
  3.    SQRT(4)    SQRT(0)   SQRT(80)  
  4. ---------- ---------- ----------  
  5.          2          0 8.94427191  
  6.   
  7. SQL> select sqrt(-3) from dual;  
  8. select sqrt(-3) from dual  
  9.             *  
  10. ERROR at line 1:  
  11. ORA-01428: argument '-3' is out of range  

11,trunc(m[,n]) 根据指定的位数n截取数字m(只截取,不进行四舍五入)

[plain]  view plain  copy
 
  1. SQL> select trunc(999.99),trunc(999.99,1),trunc(999.99,-2) from dual;  
  2.   
  3. TRUNC(999.99) TRUNC(999.99,1) TRUNC(999.99,-2)  
  4. ------------- --------------- ----------------  
  5.           999           999.9              900  

 

 

 

REFS:http://blog.csdn.net/a19881029/article/details/8161323


http://www.niftyadmin.cn/n/4235271.html

相关文章

(转)上传文件思路

一看就是用了AJAX_UPLOAD,点图的时候就上传了吧.如果是这样的接下来你会需要:创建临时目录AJAX_UPLOAD至临时目录FORM提交时将临时目录文件mv至正式目录写个定时任务清理临时目录临时目录有很多方法,量不多的话日期目录最简单.任务清理前一天的任务临时目录的文件其实可以异步删…

Databing()的使用

我们先来看一个简单的例子&#xff1a; <% Page Language"C#" %> <% Import Namespace"System.Data" %> <Script Language"C#" Runat"Server"> public void Page_Load(Object src,EventArgs e) { //首先建立一…

【转】动态树

动态树是一种“超级数据结构”&#xff0c;它能够维护一个由若干有根树组成的森林&#xff0c;在对数的时间复杂度内支持&#xff1a; 1.查询一个点的父亲 2.查询一个点所在的树的根 3.修改某个节点的权 4.向从某个节点到它所在的树的根的路径上的所有的节点的权增加一个数 5.查…

(转)java之用volatile和不用volatile的区别

在当前的Java内存模型下&#xff0c;线程可以把变量保存在本地内存&#xff08;比如机器的寄存器&#xff09;中&#xff0c;而不是直接在主存中进行读写。这就可能造成一个线程在主存中修改了一个变量的值&#xff0c;而另外一个线程还继续使用它在寄存器中的变量值的拷贝&…

hyperv虚拟机上虚拟机的cpu个数问题

虚拟机支持的内存容量最多达64G&#xff0c;虚拟机支持的vcpu个数最多为4个&#xff08;如果你虚拟机是WIN2008最多可以4个&#xff0c;如果是win2003最多2个&#xff08;这里其实是表示微软支持的个数&#xff0c;你也可以通过别的技术手段可以支持4个&#xff09;&#xff0c…

(转)为什么volatile不能保证原子性而Atomic可以?

在上篇《非阻塞同步算法与CAS(Compare and Swap)无锁算法》中讲到在Java中long赋值不是原子操作&#xff0c;因为先写32位&#xff0c;再写后32位&#xff0c;分两步操作&#xff0c;而AtomicLong赋值是原子操作&#xff0c;为什么&#xff1f;为什么volatile能替代简单的锁&am…

杂文语录积累(二)

1.不要说什么不想谈&#xff0c;没感觉就是硬道理&#xff1b; 2.没有放不下的事&#xff0c;只有放不下的人&#xff1b; 3.我们不可能在一起一辈子&#xff0c;但我们可以把在一起变的久一点。 4.一直记得一句话&#xff1a;打电话的时候记得微笑&#xff0c;对方听得见。可是…