(1)在运算符中:它可以用来匹配一个固定集合中的某个项。例如,一个集合中的年份是(200120032005),然后可以是:

复制代码代码如下所示:
SELECT * FROM t_book
在fyearpublished在(200120032005)


在运算符中,除了支持来自固定集的匹配之外,还支持匹配的动态集合集:

复制代码代码如下所示:
SELECT * FROM t_reader
在FYearOfJoin
(
选择fyearpublished从t_book
)


(2)任何与一些运营商:在SQL Server中,有一些是同义词,且两的用法和功能都是相同的(例如,我不知道这是否是蛋疼)。用算子相比,有一些需要与其他比较器一起使用(大于(>),等于(=),小于(=),小于),和比较器应该在他们前面。
复制代码代码如下所示:
SELECT * FROM t_reader
在任何fyearofjoin =
(
选择fyearpublished从t_book
)


注意:与运算符不同,任何运算符和某些运算符不能匹配固定的集合,例如,下面的SQL语句是错误的:

复制代码代码如下所示:
SELECT * FROM t_book
在fyearpublished <任何(200120032005)


(3)全集合运算符:在SQL Server中,所有操作符也需要与其他比较器(大于(>)、等于(=)、小于(=)、小于)使用,比较运算符需要位于它们前面。
复制代码代码如下所示:
SELECT * FROM t_book
在所有fyearpublished <
(
选择fyearofjoin从t_reader
)

小心 uff1a

我,和任何操作符一样,所有操作符都不能匹配固定的集合,例如,下面的SQL语句是错误的:
复制代码代码如下所示:
SELECT * FROM t_book
在fyearpublished <所有(200120032005)


二、所有操作员需要注意到所有的子查询的结果是空的。匹配结果不是以空方式处理,而是等价于所有匹配的成功,因此当使用所有操作符时,这个问题很容易引起系统中的错误,所以在使用它时必须注意:
复制代码代码如下所示:
SELECT * FROM t_book
在所有fyearpublished <
(
选择fyearofjoin从t_reader
在fprovince = 'jiangsu
)


如果所有的子查询结果是空的,它会把所有的结果选择fyearofjoin从t_reader由于匹配成功。

(4)存在集合运算符:与在任何、某些、所有等等中不同,存在操作符是单目操作符,它不匹配列,因此它也不希望将集合与单个行匹配。可以认为存在是用来测试子查询结果是否为空的。如果结果集为空,则匹配结果为false,否则匹配结果为真。

复制代码代码如下所示:
SELECT * FROM t_category
在存在
(
SELECT * FROM t_book
在t_book。fcategoryid = t_category.fid
和t_book。fyearpublished<1950
)

在子查询的每一行后存在,SQL数据匹配的t_category表子查询,并检查是否有fcategoryid字段值等于当前类的主键值在t_book表,和出版年前1950。