返回

Oracle 函数宝典:解锁数据库查询新境界

后端

解锁 Oracle 函数的强大力量,征服数据查询的挑战

字符串函数:文字游戏的大师

字符串函数是文字处理的利器,让您轻松玩转字符串,所向披靡。从简单的连接、截取到复杂的正则表达式,无所不能。

  • CONCAT(): 拼接字符串,让字符串携手共舞。
  • SUBSTR(): 截取字符串,精准提取所需信息。
  • INSTR(): 查找字符串,在字符串海洋中寻宝。
  • REGEXP_LIKE(): 正则表达式,轻松驾驭复杂字符串。

代码示例:

SELECT CONCAT('Hello', 'World') FROM dual; -- 输出: HelloWorld

SELECT SUBSTR('ABCDEFGHI', 3, 4) FROM dual; -- 输出: CDEF

SELECT INSTR('Oracle is awesome', 'Oracle') FROM dual; -- 输出: 1

数字函数:数字世界的魔法师

数字函数是数字处理的魔法师,让您轻松处理数字,纵横捭阖。从简单的加减乘除到复杂的开方、取余,无所不能。

  • ROUND(): 四舍五入,让数字更加精准。
  • TRUNC(): 截断数字,舍弃多余数字。
  • MOD(): 取余运算,让数字留下余香。
  • SQRT(): 开方运算,探索数字的平方根。

代码示例:

SELECT ROUND(12.345, 2) FROM dual; -- 输出: 12.35

SELECT TRUNC(123.456) FROM dual; -- 输出: 123

SELECT MOD(10, 3) FROM dual; -- 输出: 1

SELECT SQRT(16) FROM dual; -- 输出: 4

日期函数:时间的掌控者

日期函数是时间的掌控者,让您轻松穿越时空,纵横古今。从简单的日期格式化到复杂的日期计算,无所不能。

  • TO_CHAR(): 格式化日期,让日期焕然一新。
  • ADD_MONTHS(): 加月日期,让时间向前迈进。
  • LAST_DAY(): 获取月末日期,让时间画上句号。
  • MONTHS_BETWEEN(): 计算日期间隔,让时间成为可度量的尺度。

代码示例:

SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD') FROM dual; -- 输出: 2023-03-08

SELECT ADD_MONTHS(SYSDATE, 1) FROM dual; -- 输出: 2023-04-08

SELECT LAST_DAY(SYSDATE) FROM dual; -- 输出: 2023-03-31

SELECT MONTHS_BETWEEN(SYSDATE, '2023-01-01') FROM dual; -- 输出: 2

逻辑函数:真假之间的判官

逻辑函数是真假之间的判官,让您轻松判断是非,洞察真伪。从简单的 AND、OR 到复杂的 CASE WHEN,无所不能。

  • NVL(): 空值处理,让数据填补空缺。
  • CASE WHEN: 条件判断,让逻辑更加清晰。
  • DECODE(): 多条件判断,让逻辑更加灵活。
  • GREATEST(): 最大值获取,让数字一较高下。

代码示例:

SELECT NVL(NULL, 'Default Value') FROM dual; -- 输出: Default Value

SELECT CASE WHEN 1 > 2 THEN 'True' ELSE 'False' END FROM dual; -- 输出: False

SELECT DECODE(1, 1, 'One', 2, 'Two', 'Default') FROM dual; -- 输出: One

SELECT GREATEST(1, 2, 3) FROM dual; -- 输出: 3

聚合函数:数据世界的统计师

聚合函数是数据世界的统计师,让您轻松汇总数据,洞察趋势。从简单的 SUM、COUNT 到复杂的 AVG、MAX,无所不能。

  • SUM(): 求和数据,让数字汇聚成河。
  • COUNT(): 计数数据,让数量一目了然。
  • AVG(): 平均值数据,让数据更加具有代表性。
  • MAX(): 最大值数据,让数据登峰造极。

代码示例:

SELECT SUM(Salary) FROM Employees; -- 输出: 总工资

SELECT COUNT(*) FROM Customers; -- 输出: 客户数量

SELECT AVG(Age) FROM Students; -- 输出: 平均年龄

SELECT MAX(Score) FROM Exams; -- 输出: 最高分

分析函数:数据世界的侦探

分析函数是数据世界的侦探,让您轻松探索数据,发现隐藏的宝藏。从简单的排名、分组到复杂的滑动平均,无所不能。

  • RANK(): 排名数据,让数据高下立见。
  • GROUP BY: 分组数据,让数据井然有序。
  • MOVING AVERAGE(): 滑动平均,让数据更加平滑。
  • LEAD(): 前移数据,让数据穿越时间。

代码示例:

SELECT RANK() OVER (ORDER BY Salary) FROM Employees; -- 输出: 员工排名

SELECT GROUP BY Department FROM Employees; -- 输出: 按部门分组

SELECT MOVING AVERAGE(Sales) OVER (PARTITION BY Product ORDER BY Date) FROM Sales; -- 输出: 销售额滑动平均

SELECT LEAD(Salary, 1) OVER (PARTITION BY Department ORDER BY Salary) FROM Employees; -- 输出: 每个部门下一位员工的工资

常见问题解答

  1. Oracle 函数中哪一个函数最常用?
    SUM()、COUNT() 和 AVG() 是 Oracle 中最常用的聚合函数。

  2. 如何使用 Oracle 函数处理日期?
    使用 TO_CHAR() 格式化日期,使用 ADD_MONTHS() 调整日期,使用 LAST_DAY() 获取月末日期,使用 MONTHS_BETWEEN() 计算日期间隔。

  3. 如何在 Oracle 中处理字符串?
    使用 CONCAT() 拼接字符串,使用 SUBSTR() 截取字符串,使用 INSTR() 查找字符串,使用 REGEXP_LIKE() 匹配复杂字符串。

  4. Oracle 函数可以嵌套使用吗?
    是的,Oracle 函数可以嵌套使用,这可以创建非常强大的查询。

  5. 哪里可以找到 Oracle 函数的完整列表?
    Oracle 文档中提供了 Oracle 函数的完整列表。