Oracle 查询(SELECT)语句
Posted Abeam
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle 查询(SELECT)语句相关的知识,希望对你有一定的参考价值。
Ø 简介
在前面的 Oracle 查询 SELECT 语句(一) 中介绍了 SELECT 常用的一些基本查询语法,接下来再来看 SELECT 更深入的一些查询功能和技巧,包括以下内容:
1. All 与 Any 运算符
2. 集合操作符(UNION、UNION ALL、INTERSECT、MINUS)
3. WITH AS 的用法
4. CONNECT BY 子句的使用
5. 使用 CROSS APPLY 与 OUTER APPLY 连接查询(需要 12c 或以上版本)
6. 使用 WM_CONCAT() 或 LISTAGG() 函数合并多行字段输出
1. All 与 Any 运算符
1) All 运算符,表示满足给出列表中的所有值。通常用于以下场景:
1. 查出大于30号部门所有员工最高工资的员工姓名、工资
--使用ALL
SELECT ename, sal FROM emp WHERE sal > ALL(SELECT sal FROM emp WHERE deptno = 30);
--使用MAX
SELECT ename, sal FROM emp WHERE sal > (SELECT MAX(sal) FROM emp WHERE deptno = 30);
2) Any 运算符,表示满足给出列表中的任意值。通常用于以下场景:
1. 查出大于30号部门任意员工的工资的员工姓名、工资
--使用ALL
SELECT ename, sal FROM emp WHERE sal > ANY(SELECT sal FROM emp WHERE deptno = 30);
--使用MIN
SELECT ename, sal FROM emp WHERE sal > (SELECT MIN(sal) FROM emp WHERE deptno = 30);
n 提示
通过以上示例,可以看到通常情况下,ALL 和 ANY 都可以使用 MAX 和 MIN 去取代,所以这两个运算符一般情况用的不多。分析如下:
比较运算符 | All | Any | Max | Min |
> 大于 | 取最大值 | 取最小值 | 取最大值 | 取最小值 |
< 小于 | 取最小值 | 取最小值 | 取最大值 | 取最小值 |
2. 集合操作符(UNION、UNION ALL、INTERSECT、MINUS)
在 Oracle 中对多个集合操作,主要使用 UNION、UNION ALL、INTERSECT、MINUS 这四个操作符来完成,解决取多个集合的并集、交集和差集。
1) UNION、UNION ALL
UNION 和 UNION ALL 用于取两个结果集的并集,举例说明:
Ø UNION,取出并集并去除重复行,例如:
SELECT * FROM emp WHERE empno Oracle中分页查询语句
oracle PLSQL 查询语句select t.*, t.rowid from PU.YK t