oracle数据库中函数用法大总结

在oracle数据库中,函数大致可以分为三类:单行函数,分组函数和分析函数。
(1)单行函数:日期函数,字符函数,数字函数,转换函数

    日期函数

   select add_months(sysdate,15) from dual;
   syadate() 获得系统当前日期
   current_timestamp() 获得系统当前日期和时间
   months_between(日期一,日期二) 返回两个日期间隔了几个月
   greatest(, , ,,) 从日期列表参数中选出最早的日期
   last_day(日期)  返回日期所在月的最后一天
   next_day(日期,星期几) 返回日期所在这周的下周的参数星期几对应的日期

   字符函数

   select initcap('hello') from dual;将首字母大写:
   select lower(ename) from emp; 将大写转成小写:
   upper('') 将小写转成大写
   Ltrim('abc123','abc') 如果参数二中任意一个字符出现在参数一的左边就去掉
   Rtrim('abc123','123')如果参数二中任意一个字符出现在参数一的右边,就去掉
   Translate('abca','a','b');如果参数二在参数一中出现,就用参数三代替
   replace('','','')如果参数二在参数一中出现,就用参数三代替
   instr('abcd','c') 获得参数二在参数一种出现的位置
   substr('abcdef',3,2);从第3个字符开始,截取2个字符
   Concat('abc','def') 连接两个字符串
   CHR(97) 获得数字对应的字符
   ASCII('A') 获得字符对应ASCII码
   Lpad('abc',10,'*')如果abc不够10位,就在abc的左边加上*
   Rpad('abc',10,'*')如果abc不够10位,就在abc的右边加上*
   length('') 获得字符串的长度
   trim('abcabc','a') 去掉参数一左右两边出现的参数二
   nvl(参数一,参数二) 返回参数一的值,如果参数一为空,就返回参数二的值
   nvl2(参数一,参数二,参数三) 如果参数一不为空,就返回参数二的值,否则就返回参数三的值
   nullif(参数一,参数二) 如果参数一和参数二值相同,就返回null,否则返回参数一的值;

   数字函数

   abs()    求绝对值
   ceil()   返回不小于或等于参数的最小整数
   floor()  返回不大于或等于参数的最大整数
   round()  四舍五入
   trunc(,)  参数二指定参数一保留几位小数,如果参数二为0,则参数一的返回结果和floor一样;


   转换函数

   to_char(date,'YYYY-MM-DD')将参数一转换成 varchar2 格式
   to_date('2015-10-12','YYYY-MM-DD');按照参数二指定的格式,将参数一字符串转换成日期数据
   to_number(,)将数字字符串转换成数字数据


(2)分组函数
    avg() 返回平均值
    sum() 返回总和
    max() 返回最大值
    min() 返回最小值
    count() 返回记录的统计数量
    media()返回参数的中间值
    variance() 返回方差
    siddev()  返回标准差

   (3)分析函数
    Row_number:得到连续的数字
    Rank   :相同的值排位相同,随后跳跃
    Dense_Rank:相同的值排位相同,随后接着往后排

    select empno,ename,sal, row_number() over(order by sal desc) from emp;
    select empno,ename,sal, rank() over(order by sal desc) from emp;
    select empno,ename,sal, dense_rank() over(order by sal desc) from emp;


猜你喜欢

转载自dxnpratice.iteye.com/blog/2256032