ORACLE 内置函数


  • NVL(表达式1,表达式2):     

如果表达式1为空值,NVL返回值为表达式2的值,否则返回表达式1的值。该函数的目的是把一个空值(null)转换成一个实际的值。其表达式的值可以是数字型、字符型和日期型。但是表达式1和表达式2的数据类型必须为同一个类型。

  • NVL2(表达式1,表达式2,表达式3):

如果表达式1为空,返回值为表达式3的值。如果表达式1不为空,返回值为表达式2的值。

  • DECODE(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值):

如果条件等于值1,则返回-返回值1;如果条件等于值2,则返回-返回值2;依次类推,如果没有匹配值,则返回缺省值

  • --Oracle trunc()函数的用法

    /**************日期********************/
    1.select trunc(sysdate) from dual --2013-01-06 今天的日期为2013-01-06
    2.select trunc(sysdate, 'mm') from dual --2013-01-01 返回当月第一天.
    3.select trunc(sysdate,'yy') from dual --2013-01-01 返回当年第一天
    4.select trunc(sysdate,'dd') from dual --2013-01-06 返回当前年月日
    5.select trunc(sysdate,'yyyy') from dual --2013-01-01 返回当年第一天
    6.select trunc(sysdate,'d') from dual --2013-01-06 (星期天)返回当前星期的第一天
    7.select trunc(sysdate, 'hh') from dual --2013-01-06 17:00:00 当前时间为17:35 
    8.select trunc(sysdate, 'mi') from dual --2013-01-06 17:35:00 TRUNC()函数没有秒的精确
    /***************数字********************/
    /*
    TRUNC(number,num_digits) 
    Number 需要截尾取整的数字。 
    Num_digits 用于指定取整精度的数字。Num_digits 的默认值为 0。
    TRUNC()函数截取时不进行四舍五入
    */
    9.select trunc(123.458) from dual --123
    10.select trunc(123.458,0) from dual --123
    11.select trunc(123.458,1) from dual --123.4
    12.select trunc(123.458,-1) from dual --120
    13.select trunc(123.458,-4) from dual --0
    14.select trunc(123.458,4) from dual --123.458
    15.select trunc(123) from dual --123
    16.select trunc(123,1) from dual --123
    17.select trunc(123,-1) from dual --120