首页 >> 综合 >

oracle中的函数大全

2025-12-18 11:05:43 来源:网易 用户:贾宜绍 

oracle中的函数大全】在Oracle数据库中,函数是进行数据处理和操作的重要工具。它们可以用于查询、数据转换、计算、格式化等场景。根据功能的不同,Oracle中的函数可以分为多种类型,包括单行函数、聚合函数、分析函数、转换函数等。以下是对Oracle常用函数的总结,并以表格形式展示其分类与用途。

一、函数分类及功能概述

函数类别 功能说明 示例
单行函数 对每行数据进行处理,返回一个结果 `UPPER()`, `TO_CHAR()`, `ROUND()`
聚合函数 对多行数据进行计算,返回一个汇总结果 `SUM()`, `AVG()`, `COUNT()`
分析函数 在查询中执行复杂计算,如排名、累计等 `ROW_NUMBER()`, `RANK()`, `SUM() OVER()`
转换函数 将一种数据类型转换为另一种数据类型 `TO_DATE()`, `TO_NUMBER()`, `TO_CHAR()`
条件函数 根据条件返回不同值 `DECODE()`, `CASE WHEN`
日期函数 处理日期和时间相关操作 `SYSDATE`, `ADD_MONTHS()`, `NEXT_DAY()`
字符串函数 处理字符串操作 `SUBSTR()`, `INSTR()`, `LPAD()`

二、常用函数列表(按类别)

1. 单行函数

函数名 作用 示例
`UPPER(string)` 将字符串转为大写 `UPPER('hello') → 'HELLO'`
`LOWER(string)` 将字符串转为小写 `LOWER('WORLD') → 'world'`
`TRIM(string)` 去除字符串两端空格 `TRIM('Oracle') → 'Oracle'`
`SUBSTR(string, start, length)` 截取字符串的一部分 `SUBSTR('Database', 3, 4) → 'tase'`
`INSTR(string, substring)` 查找子字符串位置 `INSTR('Oracle', 'r') → 3`
`LENGTH(string)` 返回字符串长度 `LENGTH('Hello') → 5`
`NVL(expr1, expr2)` 如果expr1为NULL则返回expr2 `NVL(NULL, 0) → 0`
`TO_CHAR(date, format)` 将日期转换为字符串 `TO_CHAR(SYSDATE, 'YYYY-MM-DD')`

2. 聚合函数

函数名 作用 示例
`SUM(column)` 求和 `SUM(sales) FROM sales_table`
`AVG(column)` 求平均值 `AVG(price) FROM products`
`COUNT(column)` 计数 `COUNT() FROM employees`
`MAX(column)` 取最大值 `MAX(salary) FROM employees`
`MIN(column)` 取最小值 `MIN(age) FROM users`

3. 分析函数

函数名 作用 示例
`ROW_NUMBER() OVER (ORDER BY column)` 为每一行分配唯一序号 `ROW_NUMBER() OVER (ORDER BY salary DESC)`
`RANK() OVER (ORDER BY column)` 为相同值分配相同排名 `RANK() OVER (ORDER BY score DESC)`
`DENSE_RANK() OVER (ORDER BY column)` 与RANK类似,但不跳过排名 `DENSE_RANK() OVER (ORDER BY score DESC)`
`LEAD(column, offset)` 获取下一行的值 `LEAD(salary, 1) OVER (ORDER BY id)`
`LAG(column, offset)` 获取上一行的值 `LAG(salary, 1) OVER (ORDER BY id)`

4. 日期函数

函数名 作用 示例
`SYSDATE` 当前系统日期和时间 `SELECT SYSDATE FROM dual;`
`ADD_MONTHS(date, n)` 在指定日期上加n个月 `ADD_MONTHS('01-JAN-2024', 2) → '01-MAR-2024'`
`LAST_DAY(date)` 获取某月最后一天 `LAST_DAY('01-JAN-2024') → '31-JAN-2024'`
`NEXT_DAY(date, day)` 获取下一个指定星期几的日期 `NEXT_DAY('01-JAN-2024', 'FRIDAY')`
`MONTHS_BETWEEN(date1, date2)` 计算两个日期之间的月份差 `MONTHS_BETWEEN('01-FEB-2024', '01-JAN-2024') → 1`

5. 转换函数

函数名 作用 示例
`TO_CHAR(number, format)` 将数字转换为字符串 `TO_CHAR(123.45, '999.99') → '123.45'`
`TO_NUMBER(string, format)` 将字符串转换为数字 `TO_NUMBER('123.45') → 123.45`
`TO_DATE(string, format)` 将字符串转换为日期 `TO_DATE('2024-01-01', 'YYYY-MM-DD')`
`TO_SINGLE_BYTE(string)` 将双字节字符转为单字节 `TO_SINGLE_BYTE('你好')`
`TO_MULTI_BYTE(string)` 将单字节字符转为双字节 `TO_MULTI_BYTE('abc')`

6. 条件函数

函数名 作用 示例
`DECODE(value, search1, result1, search2, result2, ... default)` 类似于switch-case语句 `DECODE(job, 'MANAGER', 'Manager', 'CLERK', 'Clerk', 'Other')`
`CASE WHEN condition THEN result ELSE default END` 更灵活的条件判断 `CASE WHEN salary > 5000 THEN 'High' ELSE 'Low' END`

三、总结

Oracle提供了丰富的函数库,涵盖了从基础的数据处理到复杂的分析计算。合理使用这些函数可以提高SQL查询的效率和可读性。在实际应用中,应根据业务需求选择合适的函数类型,并注意函数的参数顺序与数据类型的匹配。掌握这些函数,是提升Oracle数据库使用能力的关键一步。

  免责声明:本文由用户上传,与本网站立场无关。财经信息仅供读者参考,并不构成投资建议。投资者据此操作,风险自担。 如有侵权请联系删除!

 
分享:
最新文章