oracle常用函数列表

一.日期函数

1. add_months(date, num);

2  months_between(date1,date2) 返回可能是整数,也可能是小数

3  last_day(date) 返回日期当天的最后一天

4 round(date, [fmt]) 返回日期值,四舍五入到指定的单位

   eg. 
  select round(sysdate,'year') from dual

5 next_day(date, day) 返回指定的下一个星期几的日期

  eg. select next_day(sysdate, '星期日') from dual

6 trunc(date,[fmt]) 返回指定格式截断的日期

  eg .  select trunc(sysdate,'year') from dual

7 extract(fmt  from date) 函数提取日期时间类型中指定的部分

  eg select extract(year from sysdate) from dual;

二、字符函数

1 initcap(char) 首字母大写

2 lower(char) 转换为小写

3 upper(char)转换为大写

4 ltrim(char, [set]) 左剪切

5 rtrim(char,[set])右剪切

6 trim(char) 剪切

  eg . select trim('9' from '990gfdsg889') from dual 返回 0gfdsg88

7 translate(char, from, to)按字符翻译

 eg.   select translate('addgxx','abcd','1234') from dual 返回 144gxx

8 instr(char, substr,[pos]) 查找子串位置

  eg. select instr('addgxx','a') from dual 返回 1

9 substr(char, pos, len) 取子串

 

10 concat(char1,char2) 连接字符串

11 chr(num) 返回ascii相应的字符

     eg. select chr(65) from dual 返回A

          select ascii('a') from dual 返回97

12 lpad(char, target_len, fill_char) 左填充

    eg. select lpad('ffadd',10,'*') from dual 返回 *****ffadd

13 rpad(char, target_len, fill_char) 右填充

14 length(char) 返回字符串长度

    eg. select length('ddff中文') from dual 返回6

    一个数据库表,列类型威varchar2, 当数据库编码GBK 时, 一个汉字占2个字节,当数据库编码为UTF-8时, 一个汉字占3个字节, length函数中一个汉字长度为1

15 decode(expression,search1,result1, search2, result2,[defualt])

    eg. 

      select decode(id,1,'一','2','二') from test_table

 

二、数学函数

1. abs(n) 绝对值

2. ceil (n) 向上取整

   select ceil(556.44) from dual 返回557

3. floor(n) 向下取整

4. round(m,n) 四舍五入

   eg. select round(556.44,-1) from dual 返回 560

         select round(556.44,1) from dual 返回 556.4

5. trunc(m,n) 数字截断

   eg. select trunc(556.44,1) from dual  返回 556.4

        select trunc(556.44,-1) from dual 返回550

三、转换函数

 1. to_char(date|num,[fmt])

      select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual

 2. to_date(char,[fmt])

 

 3.  to_number(char)

 

 4. nvl(expr1,expr2) 如果nvl为null返回expr2,否则返回expr1

 5. nvl2(expr1,expr2,expr2) 如果expr1不为null返回expr2,如果为null,返回expr3

 6. nullif(expr1,expr2) 如果两个表式相等返回null,如果不相等返回expr1

四、分析函数:

1.row_number() over ([partition by column_name] order_by_clause ) 返回连续排名

2.rank() over ([partition by column_name] order_by_clause )排名可能跳跃

3.dense_rank() over ([partition by column_name] order_by_clause )排名可能重复

eg. 对员工的工资按部门进行排序

    select e.*, dense_rank() over(partition by deptno order by sal) as sal_rank from scott.emp e order by empno

你可能感兴趣的:(oracle)