IN 关键字使您得以选择与列表中的任意一个值匹配的行。例如,如果不用 IN,当要获得居住在 California、Indiana 或 Maryland 州的所有作者的姓名和州的列表时,就需要下列查询:
SELECT ProductID, ProductNameFROM Northwind.dbo.ProductsWHERE CategoryID = 1 OR CategoryID = 4 OR CategoryID = 5
然而,如果使用 IN,少键入一些字符也可以得到同样的结果:
SELECT ProductID, ProductNameFROM Northwind.dbo.ProductsWHERE CategoryID IN (1, 4, 5)
IN 关键字之后的项目必须用逗号隔开,并且括在括号中。
可能 IN 关键字最重要的应用是在嵌套查询(也称子查询)中。有关子查询的更多信息,请参见子查询基础知识。
下列查询在 titleauthor 表中查找在任一种书中得到的版税少于 50% 的所有作者的 au_id,然后从 authors 表中选择 au_id 与 titleauthor 查询结果匹配的所有作者的姓名:
USE pubsSELECT au_lname, au_fnameFROM authorsWHERE au_id IN (SELECT au_id FROM titleauthor WHERE royaltyper < 50)
结果显示有一些作者属于少于 50% 的一类。
下列查询查找任何一种书的版税都不少于 50% 的作者的姓名:
USE pubsSELECT au_lname, au_fnameFROM authorsWHERE au_id NOT IN (SELECT au_id FROM titleauthor WHERE royaltyper < 50)
NOT IN 将找到那些与值列表中的项目不匹配的作者。
WHERE
数据类型