灵犀一脚C

博客园 首页 联系 订阅 管理

Oracle 函数

  日期函数:

    1.sysdate--查询当前日期

       select sysdate from dual;  --查询当前日期

    2.months_between--返回两个日期之间的月份差

       select months_between(to_date('2017-1-7','yyyy-MM-dd'),to_date(('2015-5-7','yyyy-MM-dd')) from dual;

     3.add_months--给某个日期添加N个月

       select add_months(sysdate,2) from dual;

    4.round--四舍五入

       select round(1.554,1) from dual;

  数字函数:

    1.abs(n)--绝对值

       select abs(-3) from dual;

    2.sqrt(n)--平方根

       select sqrt(9) from dual;

    字符函数:

    1.initcap(char)--首字母大写

     select initcap('abc') from dual;

    2.instr(char,substr[,pos])--查找子串位置

      select instr('corporate floor','or',3,2) from dual

    3.substr(char,pos,len)--取子字符串

      select substr('欢迎大家来到北大青鸟学习',1,2) from dual;

   转换函数:

    1.to_char--转换成字符串类型

      select to_char(1234.5,'$9999.9') from dual;

    2.to_number--转换成数值类型

       select to_number('1235.6') from dual;

   其他函数:

    1.nvl(exp1,exp2)--如果exp1的值为null,则返回exp2的值,否则返回exp1的值

       select sal*12 工资,comm 奖金,sal*12+nvl(comn,0) from emp;

    2.nvl2(exp1,exp2,exp3)--如果exp1的值为null,则返回exp2的值,否则返回exp3的值

       select sal*12 工资,comm 奖金,sal*12+nvl(comn,0,1) from emp;

    3.decode(value,if1,then1,if2,then2...,else)--如果value的值为if1,则返回then1的值;如果value的值为if2,则返回then2的值,...否则返回else的值

       select product_id, decode(warehouse_id,1,'Southlake',

                         2,'San Francisco',

                         3,'New Jesory',

                         4,'Seattle',

                         'Non domentic')

        "Location of inventory" from inventories where product_id<1775;

   分页查询:

      --查询第4到6条数据
--1 三层嵌套
select * from
(
   select * from
   (
      select emp.*,rownum as rn from emp
   )
    where rn>=4
)
where rn<=6
--2 两层嵌套
select * from
(
   select emp.*,rownum rn from emp
   where rownum<=6
)
where rn>=4

 

posted on 2017-03-23 15:35  灵犀一脚C  阅读(133)  评论(0编辑  收藏  举报