【oracle中的函数大全】在Oracle数据库中,函数是用于处理数据和执行特定操作的重要工具。它们可以用于查询、数据转换、计算以及控制流程等。Oracle提供了丰富的内置函数,涵盖了字符串、数字、日期、转换、聚合等多种类型。以下是对Oracle常用函数的总结,并以表格形式进行分类展示。
一、字符串函数
| 函数名 | 功能说明 | 示例 |
| `UPPER` | 将字符串转换为大写 | `UPPER('hello')` → `'HELLO'` |
| `LOWER` | 将字符串转换为小写 | `LOWER('HELLO')` → `'hello'` |
| `SUBSTR` | 提取字符串的一部分 | `SUBSTR('hello world', 7, 5)` → `'world'` |
| `INSTR` | 查找子字符串的位置 | `INSTR('hello world', 'o')` → `5` |
| `CONCAT` | 连接两个字符串 | `CONCAT('hello', ' world')` → `'hello world'` |
| `TRIM` | 删除字符串两端的空格或指定字符 | `TRIM('hello')` → `'hello'` |
| `REPLACE` | 替换字符串中的部分字符 | `REPLACE('hello world', 'world', 'Oracle')` → `'hello Oracle'` |
二、数字函数
| 函数名 | 功能说明 | 示例 |
| `ROUND` | 四舍五入 | `ROUND(3.1415, 2)` → `3.14` |
| `FLOOR` | 向下取整 | `FLOOR(3.9)` → `3` |
| `CEIL` | 向上取整 | `CEIL(3.1)` → `4` |
| `ABS` | 返回绝对值 | `ABS(-10)` → `10` |
| `MOD` | 取模运算 | `MOD(10, 3)` → `1` |
| `POWER` | 幂运算 | `POWER(2, 3)` → `8` |
| `SIGN` | 判断数值的正负 | `SIGN(-5)` → `-1` |
三、日期函数
| 函数名 | 功能说明 | 示例 |
| `SYSDATE` | 获取当前系统日期和时间 | `SYSDATE` → `2025-04-05 14:30:00` |
| `ADD_MONTHS` | 在日期上加几个月 | `ADD_MONTHS(SYSDATE, 1)` → 下个月的同一天 |
| `NEXT_DAY` | 获取下一个指定星期几的日期 | `NEXT_DAY(SYSDATE, 'MONDAY')` |
| `LAST_DAY` | 获取某月的最后一天 | `LAST_DAY(SYSDATE)` |
| `MONTHS_BETWEEN` | 计算两个日期之间的月份差 | `MONTHS_BETWEEN('2025-04-05', '2025-01-01')` → `3` |
| `TO_DATE` | 将字符串转换为日期 | `TO_DATE('2025-04-05', 'YYYY-MM-DD')` |
| `TO_CHAR` | 将日期转换为字符串 | `TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS')` |
四、转换函数
| 函数名 | 功能说明 | 示例 |
| `TO_NUMBER` | 将字符串转换为数字 | `TO_NUMBER('123')` → `123` |
| `TO_CHAR` | 将数字或日期转换为字符串 | `TO_CHAR(123.45)` → `'123.45'` |
| `TO_DATE` | 将字符串转换为日期 | `TO_DATE('2025-04-05', 'YYYY-MM-DD')` |
| `NVL` | 如果表达式为NULL则返回默认值 | `NVL(NULL, 'default')` → `'default'` |
| `COALESCE` | 返回第一个非NULL的表达式 | `COALESCE(NULL, NULL, 'third')` → `'third'` |
| `DECODE` | 类似于条件判断 | `DECODE(1, 1, 'one', 2, 'two', 'other')` → `'one'` |
五、聚合函数
| 函数名 | 功能说明 | 示例 |
| `SUM` | 求和 | `SUM(salary)` |
| `AVG` | 求平均值 | `AVG(salary)` |
| `MAX` | 求最大值 | `MAX(salary)` |
| `MIN` | 求最小值 | `MIN(salary)` |
| `COUNT` | 计数 | `COUNT()` |
| `GROUP_CONCAT`(或`LISTAGG`) | 将多行结果合并成一个字符串 | `LISTAGG(name, ', ') WITHIN GROUP (ORDER BY name)` |
六、其他常用函数
| 函数名 | 功能说明 | 示例 |
| `CASE` | 条件判断语句 | `CASE WHEN salary > 1000 THEN 'High' ELSE 'Low' END` |
| `NULLIF` | 如果两个表达式相等则返回NULL | `NULLIF(10, 10)` → `NULL` |
| `RANK` | 排名函数 | `RANK() OVER (ORDER BY salary DESC)` |
| `DENSE_RANK` | 密集排名函数 | `DENSE_RANK() OVER (ORDER BY salary DESC)` |
| `ROW_NUMBER` | 行号函数 | `ROW_NUMBER() OVER (ORDER BY salary DESC)` |
总结
Oracle数据库提供了种类繁多的函数,帮助用户更高效地处理数据。从字符串到数字、从日期到转换、再到聚合与条件判断,这些函数在日常开发和数据处理中起到了至关重要的作用。掌握这些函数不仅有助于提高SQL查询效率,还能增强对数据库操作的理解与灵活性。建议在实际应用中结合具体场景选择合适的函数,以达到最佳效果。


