Chinaunix首页 | 论坛 | 博客
  • 博客访问: 315303
  • 博文数量: 17
  • 博客积分: 5000
  • 博客等级: 大校
  • 技术积分: 1105
  • 用 户 组: 普通用户
  • 注册时间: 2005-10-18 20:28
文章分类

全部博文(17)

文章存档

2011年(1)

2008年(16)

我的朋友

分类:

2008-07-07 20:29:43

IN
确定给定的值是否与子查询或列表中的值相匹配。

EXISTS
指定一个子查询,检测行的存在。

比较使用 EXISTS 和 IN 的查询

这个例子比较了两个语义类似的查询。第一个查询使用 EXISTS 而第二个查询使用 IN。注意两个查询返回相同的信息。

USE pubs
GO
SELECT DISTINCT pub_name
FROM publishers
WHERE EXISTS
(SELECT *
FROM titles
WHERE pub_id = publishers.pub_id
AND type = 'business')
GO

-- Or, using the IN clause:

USE pubs
GO
SELECT distinct pub_name
FROM publishers
WHERE pub_id IN
(SELECT pub_id
FROM titles
WHERE type = 'business')
GO

下面是任一查询的结果集:

pub_name
----------------------------------------
Algodata Infosystems
New Moon Books

(2 row(s) affected)
 
exits 相当于存在量词:表示集合存在,也就是集合不为空只作用一个集合.例如 exist P 表示P不空时为真; not exist P表示p为空时 为真 in表示一个标量和一元关系的关系。例如:s in P表示当s与P中的某个值相等时 为真; s not in P 表示s与P中的每一个值都不相等时 为真
阅读(2015) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~