exists与not exists的概念与用法
来源:互联网 发布:淘宝买虚拟产品 编辑:程序博客网 时间:2024/06/03 16:18
原理:利用exists
或not exists
查询时,它是对父句中的每一次循环都执行查询子句来判断当前循环指向的元组是否满足查询子句的结果集不为(为)空,如果满足了的话,就将当前元组输出到父句的结果集中。
1.exists
select ...from ...where exists( 查询子句;)
如果有结果集被返回,则父句中的where
语句的结果为真,那么输出当前元组到结果集中。
2.not exists
select ...from ...where not exists( 查询子句;)
如果子句返回的结果集为空(不存在满足查询子句条件的元组),那么输出当前元组到结果集中,否则不输出。
示例
摘自leetcode
职员:
部门:
要求输出每个部门薪水最高的员工的信息,输出格式及结果应为如下:
解决方法:
SELECT D.Name,A.Name,A.Salary FROM Employee A, Department D WHERE A.DepartmentId = D.Id AND NOT EXISTS (SELECT 1 FROM Employee B WHERE B.Salary > A.Salary AND A.DepartmentId = B.DepartmentId)
SELECT 1 FROM Employee B WHERE ...
这里为何是SELECT 1
呢?
因为上面说过只判断有没有结果集返回,无论返回的是什么都能用来做判断。
0 0
- exists与not exists的概念与用法
- exists,not exists的用法
- exists,not exists的用法
- not in 与not exists的区别与用法
- exists 与not exists in 和not in用法
- exists 和not exists 用法简介及与IN和not In的区别
- exists 和not exists 用法简介及与IN和not In的区别
- oracle中in和exists、not in和not exists的用法与效率
- sql中exists,not exists的用法 与 in not in区别
- IN&EXISTS与NOT IN&NOT EXISTS 的优化
- Exists/not exists 用法
- sql exists和not exists用法,UNION与EXISTS简单用法
- not exists 的用法
- not in与not exists的区别
- not in与not exists的区别
- exists/not exists的用法和原理
- sql中exists,not exists的用法
- sql中exists,not exists的用法
- [sicily]1750. 运动会
- Oprofile的安装与使用
- java 字符编码方式
- 单页面应用在REST调用下的登录模块的设计与实现
- 二叉树的建立 插入 删除
- exists与not exists的概念与用法
- seL4 内核服务、对象以及基本能力访问和控制
- Caused by: android.content.res.Resources$NotFoundException: String resource ID #0x19
- nova 10.15会议纪要
- 【LeetCode】 Happy Number 解题报告
- C#类和接口、虚方法和抽象方法及值类型和引用类型的区别
- Interleaving String——leetcode string操作说明
- [unity3d]通过C#脚本操作游戏对象
- MongoDB的文档、集合和数据库