当前所在位置:珠峰网资料 >> 计算机 >> Oracle认证 >> 正文
Oracle基本函数总结
发布时间:2010/11/1 15:36:21 来源:城市学习网 编辑:ziteng
  (一)字符函数
  Upper
  SELECT Upper ('abcde') FROM dual  结果:ABCDE
  Lower
  SELECT lower('ABCDE') FROM dual 结果:abcde
  Initcap
  SELECT Initcap ('AAA') FROM dual 结果:Aaa
  SELECT Initcap ('aaa') FROM dual 结果:Aaa
  Concat
  SELECT Concat ('a', 'b') FROM dual 结果:ab
  Select 'a' || 'b' from dual 结果:ab
  Substr
  Select substr('abcde',0,3) from dual 结果:abc
  Select substr('abcde',-2,3) from dual 结果:de
  第二个参数为字符串的第几位,默认从0开始。当为负数时,是从右侧开始。第三个参数为要取得字符串的总长度。
  Length
  Select length('abcde') from dual 结果:5
  Replace
  Select replace('abcde','a','A') from dual 结果:Abcde
  Instr
  Select instr('Hello World','W') from dual 结果:8
  Select instr('Hello World','w') from dual 结果:0
  如果在第一个参数中存在第二个参数,则返回第一个遇到的匹配参数的位置,该方法区分大小写。
  Lpad
  select lpad('Smith',10,'*') from dual 结果:*****Smith
  Rpad
  select rpad('Smith',10,'*') from dual 结果:Smith*****
  Trim
  select trim(' Mr Smith ') from dual 结果:Mr Smith
  (二)数值函数
  Round
  select round(412,-2) from dual;  结果:400
  select round(412.713) from dual;结果:413
  select round(412,2) from dual;结果:412
  select round(412.713,2) from dual;结果:412.71
  取整运算,第二个参数指定了取小数点后的几位,如果是5则进一。
  Mod
  select Mod(198,2) from dual 结果:0
  Trunc
  select trunc(412.13,-2) from dual  结果:400
  select trunc(412.13,2) from dual   结果:412.13
  select trunc(412.13,1) from dual   结果:412.1
  select trunc(412.53) from dual     结果:412
  取整运算,第二个参数指定了取小数点后的几位,不进位。 [NextPage]   (三)日期函数
  Months_between
  select months_between(sysdate+35,sysdate) from dual
  结果:1.16129032258065
  用第一个参数的时间减去第二个参数的时间,得到月份的差。
  Add_months
  select add_months(sysdate,1) from dual
  当前月份加了一个月
  interval
  select   sysdate   +   interval   '3 '   year   from   dual
  当前日期加了三年
  select   sysdate   +   interval   '3-2 '   year   to   month   from   dual
  当前日期加了三年两个月
  select   sysdate   +   interval   '10   2:10 '   day   to   minute   from   dual
  当前日期加了 十天两小时十分钟
  Next_day
  select next_day(sysdate,'星期一') from dual
  选择了下一个星期一的日期
  Last_day
  select last_day(sysdate) from dual
  选择了这个月的最后一天
  (四)转换函数
  To_char
  select to_char(sysdate,'yyyy-MM-dd') from dual; 结果:2010-10-30
  To_number
  select to_number('13')+to_number('14') from dual;结果:27
  To_date
  Select to_date('2012-1-1','yyyy-MM-dd') from dual;结果:2012-1-1
  (五)通用函数
  NVL
  select nvl('string',0) from dual 结果:string
  select nvl('',0) from dual 结果:0
  NullIF
  select nullif('abc','abc') from dual 结果:空
  select nullif('abc','abcd') from dual 结果:’abc
  NVL2
  select nvl2('a','b','c') from dual 结果:b
  select nvl2('','b','c') from dual 结果:c
  如果第一个参数不为空,则返回第二个参数;否则,返回第三个参数
  Coalesce
  select COALESCE('','','abc','') from dual 结果:abc
  select COALESCE('','','','') from dual     结果:空
  依次考察各个参数,如有非空则停止并返回该值。
  Case表达式
  select case 4
  when 10 then
  '财务部'
  when 20 then
  '研发部'
  when 30 then
  '销售部'
  else
  '未知部门'
  end 部门
  from dual
  结果:未知部门
  Decode表达式
  select decode(10, 10, '财务部', 20, '研发部', 30, '销售部', '未知部门') 部门
  from dual;结果:财务部
  select decode(2,10,'财务部',decode(3,20,'研发部',decode(4,30,'销售部','未知部门'))) from dual; 结果:未知部门
  第一个参数是否等于第二个参数,如果等于,则返回第三个参数,否则返回第四个参数,可用于行转列。
广告合作:400-664-0084 全国热线:400-664-0084
Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号
珠峰网 版权所有 All Rights Reserved