• oracle 内置函数


      oracle内置函数分为单行函数和聚合函数两大类

    1、to_date

    将字符转换为日期

    select to_date('2008-08-08','yyyy-mm-dd') from dual; --2008/8/8

    2.add_months

    增加月份

    select add_months(sysdate,2) from dual; --当前时间向后推2个月,精确到秒

    select add_months(sysdate,-2) from dual;--当前时间向前推2个月,精确到秒

    3.trunc

    按照指定的精度截取一个数

    /***********************日期***************************/
    1.select trunc(sysdate) from dual --2017-02-07 今天的日期为2017-02-07
    2.select trunc(sysdate, 'mm') from dual --2017-02-01 返回当月第一天.
    3.select trunc(sysdate,'yy') from dual --2017-01-01 返回当年第一天
    4.select trunc(sysdate,'dd') from dual --2017-02-07 返回当前年月日
    5.select trunc(sysdate,'yyyy') from dual --2017-01-01 返回当年第一天
    6.select trunc(sysdate,'d') from dual --2017-02-05 (星期天)返回当前星期的第一天
    7.select trunc(sysdate, 'hh') from dual --2017-02-05 14:00:00 当前时间为14:49
    8.select trunc(sysdate, 'mi') from dual --2017-02-05 14:49:00 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

    4.last_day

    返回指定日期当月的最后一天

    select last_day(to_date('2008-08-08','yyyy-mm-dd')) from dual;--2008/8/31

    5.nvl(a1,a2)

    如果第一个参数为空那么显示第二个参数的值,如果第一个参数的值不为空,则显示第一个参数本来的值。

    select nvl(null,2) from dual;--返回2

    select nv(0,2) from dual;--返回0

    select nvl(1,2) from dual;返回1

    6.NVL2(E1, E2, E3)

    如果E1为NULL,则函数返回E3,若E1不为null,则返回E2

    select nvl2 (null,2,3)from dual;--返回3

    select nvl2 (1,2,3)from dual;--返回2

    7.decode

    decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值)

    该函数的含义如下:
    IF 条件=值1 THEN
        RETURN(翻译值1)
    ELSIF 条件=值2 THEN
        RETURN(翻译值2)
        ......
    ELSIF 条件=值n THEN
        RETURN(翻译值n)
    ELSE
        RETURN(缺省值)
    END IF

    decode(字段或字段的运算,值1,值2,值3)

           这个函数运行的结果是,当字段或字段的运算的值等于值1时,该函数返回值2,否则返回值3
    当然值1,值2,值3也可以是表达式,这个函数使得某些sql语句简单了许多

    select decode(1,2,3,4) from dual;--返回4

    select decode(2,2,3,4) from dual;--返回3

    8.concat

    字符连接

    select concat('adc','cba')from dual;--返回adccba

    9.instr

    INSTR(源字符串, 要查找的字符串, 从第几个字符开始, 要找到第几个匹配的序号)

    返回找到的位置,如果找不到则返回0. 默认查找顺序为从左到右。当起始位置为负数的时候,从右边开始查找。若起始位置为0,返回值为0。

    select instr('chineseisgoodithink','i',2,3)from dual;--返回14

    10.lpad

    lpad函数从左边对字符串使用指定的字符进行填充。从其字面意思也可以理解,l是left的简写,pad是填充的意思。

    lpad( string, padded_length, [ pad_string ] )

    string

      准备被填充的字符串;

      padded_length

      填充之后的字符串长度,也就是该函数返回的字符串长度,如果这个数量比原字符串的长度要短,lpad函数将会把字符串截取成从左到右的n个字符;

      pad_string

      填充字符串,是个可选参数,这个字符串是要粘贴到string的左边,如果这个参数未写,lpad函数将会在string的左边粘贴空格。

    select lpad('women',9,'ni')from dual;--niniwomen

    select lpad('women',2)from dual;--wo

    10.ltrim

    去掉字符两边的空格

    select ltrim('108224323', '108')from dual;--224323

    select ltrim('10810081224323', '108')from dual;--2234323

    select ltrim('10810081210824323', '108')from dual;--210824323

    ltrim(x,y) 函数是按照y中的字符一个一个截掉x中的字符,并且是从左边开始执行的,只要遇到y中有的字符, x中的字符都会被截掉, 直到在x的字符中遇到y中没有的字符为止函数命令才结束 .

    11.replace

    replace(char,search_string,replacement_string)

    char : 等待替换的字符串
    search_string : 搜索需要替换的字符串
    replacement_string : 替换字符串

    select replace('nihenlihai','ni','wo') from dual;--wohenlihai

    12.substr

    substr(字符串,截取开始位置,截取长度) //返回截取的字

    select substr(' hong kong ',1,4)from dual;--hong

    13.translate

    TRANSLATE(string,from_str,to_str)

    返回将(所有出现的)from_str中的每个字符替换为to_str中的相应字符以后的string。

    select translate(' hong kong ','on','un')from dual;-- hung kung

    如果 from_str 比 to_str 长,那么在 from_str 中而不在 to_str 中的额外字符将从 string 中被删除,因为它们没有相应的替换字符。

    select translate(' hong kong ','ong','un')from dual;-- hun kun

    如果TRANSLATE 中的任何参数为NULL,那么结果也是 NULL。

    select translate(' hong kong ',null,'un')from dual;--null

  • 相关阅读:
    js实现H5、触摸屏数字键盘
    MAC 下node.js初体验 开发环境搭建
    手动搭建一个完整的angular实践项目
    js实现H5页面手指滑动刻度尺
    JavaScript中的事件循环机制
    CentOS6.5安装教程
    通过ecplise导入mysql的jar包时,右键找不到build path问题
    Java数据库之数据库的连接操作
    Java基础之文件的输入输出流操作
    数据库约束
  • 原文地址:https://www.cnblogs.com/dopaer/p/6375110.html
Copyright © 2020-2023  润新知