49.Oracle数据库SQL开发之 子查询——编写多行子查询
2015-11-12 22:25
495 查看
49.Oracle数据库SQL开发之 子查询——编写多行子查询
欢迎转载,转载请标明出处:http://blog.csdn.net/notbaron/article/details/49805699
多行子查询可以向外部的SQL语句返回一行或多行记录。要处理返回多行记录的子查询,外部查询可以使用IN、ANY或ALL操作如。
store@PDB1> select product_id,name from productswhere product_id in (1,2,3);
PRODUCT_ID NAME
---------- ------------------------------
1 Modern Science
2 Chemistry
3 Supernova
store@PDB1>select product_id,name from products where product_id in (select product_idfrom products where name like '%e%');
PRODUCT_ID NAME
----------------------------------------
1 Modern Science
2 Chemistry
3 Supernova
5 Z Files
6 2412: The Return
7 Space Force 9
8 From Another Planet
11 Creative Yell
12 My Front Line
9 rows selected.
查看NOT IN操作符:
store@PDB1> select product_id,name from productswhere product_id not in (select product_id from purchases);
PRODUCT_ID NAME
---------- ------------------------------
4 Tank War
5 Z Files
6 2412: The Return
7 Space Force 9
8 From Another Planet
9 Classical Music
10Pop 3
11Creative Yell
12My Front Line
9 rows selected.
store@PDB1> select employee_id,last_name fromemployees where salary < any (select low_salary from salary_grades);
EMPLOYEE_ID LAST_NAME
----------- ----------
3 Hobbs
4 Jones
2 Johnson
ALL操作符之前,必须使用一个 =,<>,<,>,<=或>=操作符。
store@PDB1> select employee_id,last_name fromemployees where salary > all (select high_salary from salary_grades);
no rows selected
说明,没有员工的工资高于最高工资。
欢迎转载,转载请标明出处:http://blog.csdn.net/notbaron/article/details/49805699
多行子查询可以向外部的SQL语句返回一行或多行记录。要处理返回多行记录的子查询,外部查询可以使用IN、ANY或ALL操作如。
store@PDB1> select product_id,name from productswhere product_id in (1,2,3);
PRODUCT_ID NAME
---------- ------------------------------
1 Modern Science
2 Chemistry
3 Supernova
1. 在多行子查询中使用IN 操作符
IN可以用来检查在一个值列表中是否包含指定的值。这个值列表也可以来自一个子查询返回结果。NOT IN执行的操作正好与IN在逻辑上相反。store@PDB1>select product_id,name from products where product_id in (select product_idfrom products where name like '%e%');
PRODUCT_ID NAME
----------------------------------------
1 Modern Science
2 Chemistry
3 Supernova
5 Z Files
6 2412: The Return
7 Space Force 9
8 From Another Planet
11 Creative Yell
12 My Front Line
9 rows selected.
查看NOT IN操作符:
store@PDB1> select product_id,name from productswhere product_id not in (select product_id from purchases);
PRODUCT_ID NAME
---------- ------------------------------
4 Tank War
5 Z Files
6 2412: The Return
7 Space Force 9
8 From Another Planet
9 Classical Music
10Pop 3
11Creative Yell
12My Front Line
9 rows selected.
2. 在多行子查询中使用ANY操作符
ANY操作符可以用来将一个值与一个列表中的任何值进行比较。在查询中ANY操作符之前,必须使用一个 =,<>, <,>,<=,>=操作符。store@PDB1> select employee_id,last_name fromemployees where salary < any (select low_salary from salary_grades);
EMPLOYEE_ID LAST_NAME
----------- ----------
3 Hobbs
4 Jones
2 Johnson
3. 在多行子查询中使用ALL操作符
ALL操作符可以用来将一个值与一个列表中的所有值进行比较。ALL操作符之前,必须使用一个 =,<>,<,>,<=或>=操作符。
store@PDB1> select employee_id,last_name fromemployees where salary > all (select high_salary from salary_grades);
no rows selected
说明,没有员工的工资高于最高工资。
相关文章推荐
- 48.Oracle数据库SQL开发之 子查询——编写单行子查询
- 修改oracle redo
- oracle学习笔记--pl/sql编程(流程控制)
- Procedure -- 存储过程初体验
- oracle学习笔记--pl/sql编程(基础)
- Oracle 删除表中记录 如何释放表及表空间大小
- linux64 rh7 下安装oracle11g(r2)
- oracle的order by排序中空字符串处理方法
- 深入Mysql,SqlServer,Oracle主键自动增长的设置详解
- CentOS 6.5下安装Oracle 11g
- oracle case when then
- 在oracle中怎么把一张表的数据插入到另一张表中
- oracle备份表
- Toad Oracle 本地/远程数据库导入/导出 数据库备份
- Toad Oracle 本地/远程数据库导入/导出 数据库备份
- oracle中的 where 1=1 和where 1<>1
- Oracle 11gR2 RAC 修改监听器端口号的步骤
- Oracle数据库GLOBAL_NAMES参数的详细研究 (创建DBLINK时有用)
- Oracle 中的service_name,sid的作用和区别
- oracle导数据