oracle的内置函数

1数值型函数:
    1.1绝对值、取余、判断数值正负函数
        1)ABS(n) 函数。用于返回绝对值。该参数输入一个参数,参数类型为数值型,加入参数为可以隐式转换为数值类型,也可以
        例:select ABS(100),ABS(-100),ABS('100') FROM DUAL;
        2)MOD(n2,n1)函数。该函数表示返回n2/n1的余数。参数为任意数值或可以隐式转换为数值的类型。
        例:select MOD(5,2),MOD(8/3,5),MOD('10',5),MOD(-10,6),MOD(1,0) FROM DUAL;
        3)SIAN(N)函数。返回参数n的符号,正数返回1,0返回0,负数返回-1.但如果n为BINARY_FLOAT或FINARY_DOUBLE类型时,n>=0
        或者n=NaN函数会返回1.
        例:select sign('9'),sign(-9),sign(0.00),sign(-2*'9') from dual;
    1.2三角函数:
        cos(n):返回参数n的余弦,n为弧度表示的角度:
        例:select cos(3.1415926),cos('3.1415926') from dual;
        acos(n):返回n的反余弦值
        cosh(n):返回n的双曲余弦值
        sin(n):返回n的正弦值
        asin(n):返回n的反正弦值
        tan(n):返回n的正切值
        tanh(n):返回n的双曲正切值
        atan(n):返回n的反正切值
    1.3返回以指定数值为准整数的函数
        CELL(n)函数。返回大于等于输入参数的最小整数。
        例:select cell(10),cell('10.5'),cell(-10.2) from dual;
        FLOOR(N):返回结果是小于或等于参数的最大整数。
        例:select floor(10),floor('10.5'),floor(-10.2) from dual;
    1.4指数,对数函数
        sqrt(n):函数。该函数返回n的平方根。n不能为负数,为浮点数时返回nan。
        例:select sort(100),sqrt('53.9') from dual;
        power(n2,n1):利用该函数可以得到n2的n1次幂的结果。n2为负数,则n1必须为整数。
        log(n1,n2)函数。利用该函数可以返回以n1为底n2的对数。n1是除1和0以外的任意正数。
        例:select log(10.100),log(10.5,'100'),power(10,2) from dual;
    1.5四舍五入截取函数
        round(n,integer)函数。它将数值n四舍五入成第二个参数指定的形式的十进制数。
        例:select round(100.23456,4),round(100.23456,2.56),round(155.23456,-2) from dual;
        结果:            100.2345            100.23                200
        trunc(n,integer) 函数。它把数值n根据integer的值进行截取
        例:select trunc(100.23456,4)trunc(100.23456,2.56),trunc(155.23456,-2),trunc(155.234546) from dual;
        结果:            100.2345              100.23                100                155
        
2.字符型函数:
    2.1 ASCII码与字符转换函数
    CHR(n[USING NCHAR_CS])函数。根据指定的字符集,将给定的ASCII码转换为字符。
    例:select CHR(65) || CHR(66) || CHR(67) ABC,CHR(54678) FROM DUAL;
    结果:                ABC                         諙 
    2.2 获取字符串长度函数
    length(char) :获取到指定字符串的长度
    例: select length('abcde我fghi') from dual;
    结果:                10
    2.3 字符串截取函数
    substr(char,position,substring_length) :    char:原始字符串,
                                                position:截取开始位置,初始为1,负数从右边算起,
                                                substring_length:截取的长度
    例:select substr('abcde我fghi',5,2),substr('abcde我fghi',5,2) from dual;
    结果:                    e我                            我f
    2.4 字符串连接函数
    concat(char1,char2)     或者是     || 
    select concat('我爱你','中国'), '山有木兮' || '木有枝' from dual;
    结果:            我爱你中国            山有木兮木有枝
    2.5 字符串搜索函数:在一个指定字符串中搜索是否存在另一个字符串。
    instr(string,subString,position[,occurrence])
    例:select instr('this is a 测试!',''),instr('this is a 测试!','s',-1) from dual;
    2.6 字母大小写转换函数
    upper(char):参数转换成大写
    lower(char):参数转换成小写
    initcap(char):首字母转换成大写
    2.7 带排序参数的字母大小写转换参数
    nls_initcap(char[,nlsparam]),将指定参数的第一个字母转换成大写。
    nls_upper(char[,nlsparam])将指定参数变为大写。
    nls_lower(char[,nlsparam]) 将指定参数转换为小写。
    2.8 指定参数排序函数
    nlssort(char[,nlsparam])函数,根据nlsparam指定的方式对char进行排序。
    2.9 替换字符串函数
    replace(char,search_string,replacement_string):替换char中的search_string为replacement_string;
    例:select replace('this is a test','tes','resul') from dual;
    2.10 字符串填充函数
    rpad('字符串',n,'要填充的字符串'):在字符串右边填充字符到指定长度n
    lpad('字符串',n,'要填充的字符串'):在字符串左边填充字符到指定长度n
    2.11 删除字符串首位指定字符的函数
    trim():删除指定的前缀或尾随的字符,默认删除空格
    2.12字符集名称和ID互换函数
    nls_charset_id(string):根据字符集名称得到对应ID
    nls_charset_name(number):根据字符集ID得到对应的名字
    
3.日期型函数
    3.1系统日期,时间函数
    SYSDATE函数。得到当前系统的日期
    例:select TO_CHAR(SYSDATE,'YYYY-MM-DD HH24:MI:SS') FROM DUAL;
    SYSTIMESTAMP函数。返回系统时间。
    例:select systimestamp from dual;
    3.2得到数据库时区函数
    dbtimezone函数:返回数据库时区
    3.3为日期加上指定月份函数
    add_months(date,integer):指定日期data加一个integer月份数,负数表示减去的月份数
    3.4返回指定月份最后一天的函数
    next_day(date)函数
    3.5返回指定日期后一周的日期函数
    next_day(date,char)函数;
    3.6返回回话所在时区当前日期函数
    current_date函数;
    3.7提取指定日期特定部分的函数
    EXTRACT函数:从指定的时间当中提取到指定的日期部分。
    例:select extract(year from sysdate) year from dual;
    3.8得到两个日期之间的月份数
    months_between(date1,date2)函数。返回两个时间月份的差值:
    3.9时区时间转换函数
    new_time(date,temezone1,timezone2)函数。该函数将返回时间date在时区timezone1转换到时区timezone2的时间。
    3.10日期四舍五入,截取函数
    round(date,fmt)函数。将函数date舍入到fmt指定的形式。如果参数fmt被省略,则date将被处理到最近的一天。
    例:select to_char(round(to_date('2010-5-1 21:00:00','YYYY-MM-DD HH24:MI:SS')),'YYYY-MM-DD HH24:MI:SS') FROM DUAL;
    TRUNC(DATE,FMT)函数,该函数将date截取到fmt指定的形式,如果fmt省略,则截取到最近的日期。

4.转换函数
    4.1字符串转ASCII类型字符串函数
    ASCII(char)函数。
    例:select ASCIISTR('这是测试') FROM DUAL;
    4.2二进制转十进制函数
    bin_to_num(data[,data...])函数,该函数可以将二进制转化成对应的十进制。data表示二进制数,一位用‘,’隔开
    例:select bin_to_num(1,1,0) from dual;
    4.3数据类型转换函数
    cast(expr as type_name)函数。将expr参数转换成type_name类型c,多用于数字与字符,字符与日期之间的转换。
    4.4字符串和ROWID相互转换函数
    chartorowid(char)函数。该函数将字符串类型转换成rowid类型。
    ROWIDTOCHAR(rowid)函数,将行记录的rowid转换成字符串。
    ROWIDTONCHAR(rowid)函数,将rowid转换晨成varchar2类型。
    4.5字符串在字符串间转换函数
    convert函数:用于把字符串从一个字符集转到另一个字符集。
    4.6十六进制字符串与RAW类型相互转换函数
    HEXTORAW(char)函数。把十六进制的字符串转换成raw类型的数据
    RAWTOHEX(raw):把raw类型表示成一个由十六进制字符标识的串,返回varchar2类型。
    4.7数值转换成字符型函数
    TO_CHAR(number):将一个数值型参数转换成一个字符型数据。
    TO_CHAR(date):把一个日期型数据转换成一个字符型数据。
    4.8字符转日期型函数
    TO_DATE(char[,fmt[,nlsparam]])函数:将字符型函数转成日期型数据。
    例:select TO_DATE('2018-8-9','YYYY-MM-DD','MONTH') FROM DUAL;
    结果:                    7月
    4.9字符型转数字函数
    TO_NUMBER(expr[,fmt[,nlsparam]])函数:将字符串转换成数字
    4.10全角转半角函数
    TO_SINCLE_BYTE(char)函数。将全角转换成半角。
    
5.NULL函数
    5.1返回表达式为null的函数
    coalesce(expr)函数:返回列表中第一个不为null的表达式。如果都为null,则返回一个null。
    5.2排除指定条件函数
    lnnvl(condition)函数:该函数可以得到除了condition要求条件之外的数据,包括null的条件,
    例:select * from productinfo where lnnvl(quantity>=70);
    5.3替换null值函数
    nvl(exprl,expr2)函数:如果exprl是null,就替换成expr2的值,否则返回expr1的值。
    nvl2(expr1,expr2,expr3)函数:如果expr1是null,就返回expr3的值,当expr1不为空时,则返回expr2的值。
    
6.集合函数
    6.1求平均值函数
    AVG([distinctlall]expr)函数,求取指定列的平均值。
        distinct:去除重复的值。
        all:所有值
        expr:表达式,只能是数值类型
    例:select avg(all productprice+100) from productinfo;
    6.2求记录数量函数
    count(*|[distinct][all]expr)函数。该函数可以用来计算记录的数量或某列的个数。指定列名,或*表示全选。
        *:计算所有记录
        distinct:去重
        all:所有的
        expr:要计算的对象,通常是表的列
    例:select count(dixtinct productprice) from productinfo where productprice < 3000;
    6.3返回最大最小值函数
    MAX([distinct|a]expr)函数。返回指定列中的最大值
    例:select * from productinfo where productrice=(select max(productprice) from productinfo);
    MIN([distincr|all]expr)函数。返回指定列中的最小值
    6.4求和函数
    sum([distincr|all]expr)函数。该函数不同于count,它分组计算指定列的和。不使用分组,则默认整个表为一组。
    例:select sum(all quantity),category from productinfo group by category;
    
7.其他函数:
    7.1返回登录名函数
    user函数:返回当前会话的登录名
    select user from dual;
    7.2返回回话以及上下文信息函数
    userenv(paraameter)函数:返回当前回话的信息。
    例:select userenv("isdba") from dual ;
    sys_context(namespace,parameter)函数:得到oracle已经创建的context,名为userenv的属性对应值。
    例:select sys_context('userenv','session_user') session_user from dual;
    7.3表达式匹配函数
    decode(expr,search,result[,search1,result][,default])函数:当expr符合条件search时就返回result的值,类似swith-cash
    例:select productname,quantity,decode(sign(quantity-100),1,'充足',-1,'不足',0,'不足') from productinfo;

    
    
原文地址:https://www.cnblogs.com/anningkang/p/9452955.html