Oracle 的函数用得溜,能少写不少复杂查询。
比如你想在一堆数据里搞排名、做累加、前后比对,那这些函数就合适。像 RANK()、ROW_NUMBER()、LAG() 这些,用过你就知道,写起来顺手,响应也快。
文档里分得挺清楚:排名函数搞排序定位,窗口函数负责聚合,首尾函数能查前后,NTILE()这种还能平均分段,逻辑清楚,例子也比较实在。
平时像找每个部门工资最高的前三名?直接套个 RANK() OVER (PARTITION BY)
,简单明了。不用绕来绕去做子查询,写出来的 SQL 也挺清爽。
哦对,OVER()子句要掌握清楚,它是整个函数的核心,什么 PARTITION BY
、ORDER BY
、ROWS BETWEEN
都靠它挂载。
如果你之前用 MySQL 的窗口函数,那看 Oracle 的这一套上手不会太难,语法风格差不多,思路通了就能举一反三。
建议收藏这个资源,有函数分类、有语法、有例子,适合平时查漏补缺。尤其你写报表或复杂统计 SQL 时,绝对帮得上忙。