exists 和not exists 用法简介及与IN和not In的区别
来源:互联网 发布:泰拉瑞亚数据 编辑:程序博客网 时间:2024/05/20 03:45
IN:确定给定的值是否与子查询或列表中的值相匹配。
IN 关键字使您得以选择与列表中的任意一个值匹配的行。
当要获得居住在 California、Indiana 或 Maryland 州的所有作者的姓名和州的列表时,就需要下列查询:
SELECT ProductID, ProductName FROM Northwind.dbo.Products WHERE CategoryID = 1 OR CategoryID = 4 OR CategoryID = 5
然而,如果使用 IN,少键入一些字符也可以得到同样的结果:
SELECT ProductID, ProductName FROM Northwind.dbo.Products WHERE CategoryID IN (1, 4, 5)
IN 关键字之后的项目必须用逗号隔开,并且括在括号中。
下列查询在 titleauthor 表中查找在任一种书中得到的版税少于 50% 的所有作者的 au_id,然后从 authors 表中选择 au_id 与
titleauthor 查询结果匹配的所有作者的姓名:
SELECT au_lname, au_fname FROM authors WHERE au_id IN (SELECT au_id FROM titleauthor WHERE royaltyper < 50)
结果显示有一些作者属于少于 50% 的一类。
NOT IN:通过 NOT IN 关键字引入的子查询也返回一列零值或更多值。
以下查询查找没有出版过商业书籍的出版商的名称。
SELECT pub_name FROM publishers WHERE pub_id NOT IN (SELECT pub_id FROM titles WHERE type = 'business')
使用 EXISTS 和 NOT EXISTS 引入的子查询可用于两种集合原理的操作:交集与差集。两个集合的交集包含同时属于两个原集合的所有元素。
差集包含只属于两个集合中的第一个集合的元素。
EXISTS:指定一个子查询,检测行的存在。
本示例所示查询查找由位于以字母 B 开头的城市中的任一出版商出版的书名:
SELECT DISTINCT pub_name FROM publishers WHERE EXISTS (SELECT * FROM titles WHERE pub_id = publishers.pub_id AND type =
'business')
SELECT distinct pub_name FROM publishers WHERE pub_id IN (SELECT pub_id FROM titles WHERE type = 'business')
两者的区别:
EXISTS:后面可以是整句的查询语句如:SELECT * FROM titles
IN:后面只能是对单列:SELECT pub_id FROM titles
NOT EXISTS:
例如,要查找不出版商业书籍的出版商的名称:
SELECT pub_name FROM publishers WHERE NOT EXISTS (SELECT * FROM titles WHERE pub_id = publishers.pub_id AND type =
'business')
下面的查询查找已经不销售的书的名称:
SELECT title FROM titles WHERE NOT EXISTS (SELECT title_id FROM sales WHERE title_id = titles.title_id)
- exists 和not exists 用法简介及与IN和not In的区别
- exists 和not exists 用法简介及与IN和not In的区别
- exists 与not exists in 和not in用法
- IN,NOT IN,EXISTS,NOT EXISTS的用法和差别
- not in和not exists的区别
- SQL中IN和EXISTS用法的区别,sql中exists,not exists的用法
- SQL中IN和EXISTS用法的区别,sql中exists,not exists的用法
- oracle 中exists,not exists的用法以及和exists和in的区别
- oracle中in和exists、not in和not exists的用法与效率
- sql中in/not in 和exists/not exists的用法区别
- in 和 exists 区别,not in和not exists区别
- exists和not exists用法 代替in和not in
- exists和not exists用法 代替in和not in
- exists,in 和 not in ,not exists
- oracle中的exists 和not exists、in的 用法详解
- 关于sql not in 和not exists 区别和用法
- not in 与not exists的区别与用法
- not in 和 not exists 区别
- C#操作MySQL数据库的简单例子
- C# 连接MySql的方法
- 如何对更改internet密码所需的缓存时间进行调整?
- yield关键字
- ubuntu 10.04 啟動畫面没有图标只有TXT文字
- exists 和not exists 用法简介及与IN和not In的区别
- 找工作不容易啊
- 创建约束
- rpmbuild 命令详解
- 什么样的国家才是强国
- 创建同义词
- silverlight: DatePicker Control dateformat
- AJP协议
- [推荐] IT俱乐部社区