zoukankan      html  css  js  c++  java
  • Oracle基本函数总结

    (一)字符函数

    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

    取整运算,第二个参数指定了取小数点后的几位,不进位。

    (三)日期函数

    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; 结果:未知部门

    第一个参数是否等于第二个参数,如果等于,则返回第三个参数,否则返回第四个参数,可用于行转列。

  • 相关阅读:
    项目冲刺之任务场景分析
    一位数组的最大子数组(debug版)
    软件工程课堂五(地铁项目的优化)
    人月神话阅读笔记02
    软件工程第七周总结
    人月神话阅读笔记01
    软件工程第六周总结
    构建之法阅读笔记03
    软件工程第五周总结
    软件工程课堂四(合作开发项目-地铁线路查询)
  • 原文地址:https://www.cnblogs.com/Johnny_Z/p/1865673.html
Copyright © 2011-2022 走看看