Oracle 窗口函数
想在看员工薪水的同时,还能在同一行看到他所在部门的平均薪水吗?或者想给每个部门的产品按销量排名?这就是窗口函数的魔力。它不像GROUP BY会把数据压缩成一行,而是为每一行都进行一次“开窗”计算。通过OVER(PARTITION BY ...),你可以轻松实现分组排名、累计求和、或是与前后行数据对比等高级分析,代码比复杂的自连接和子查询要优雅得多。
Oracle 数据塑形:行列转换与集合运算
报表要求的数据格式总是千奇百怪?其实用SQL就能让数据轻松“变形”。想把多行内容(比如各科成绩)合并成一行里的多列,可以用经典的CASE WHEN,或者在11g以上版本里用更简洁的PIVOT。反过来,把宽表拆成多行,也有UNION ALL和更方便的UNPIVOT。学会这些,再配合UNION、INTERSECT等集合运算,数据就能随心所欲地展示了。
Oracle 常用函数
拿到手的数据不总是规规矩矩的?Oracle内置了超多实用函数,可以直接在SQL里“加工”数据。无论是大小写转换、截取字符串,还是日期的加减、数字的四舍五入,都有对应的函数。特别推荐用NVL来优雅地处理空值,以及用CASE语句实现复杂的判断逻辑,能让你的查询既强大又省事。
Oracle 数据库查询:多表查询
想把分散在多个表里的数据拼起来看?核心就靠JOIN(连接)和子查询。可以用INNER JOIN找到两边都匹配的记录,或用OUTER JOIN查看单边也存在的数据。一个非常强大的技巧,是把一个查询结果当成临时表来用,能让复杂的统计分析变得清晰。再结合新版本里简洁的分页语法,跨表取数和展示就得心应手了。