SQL ANY 操作符
SQL ANY 将第一个表的值与第二个表的所有值进行比较,如果与任何值匹配,则返回该行。
它具有以下语法:
SELECT column
FROM table1
WHERE column OPERATOR ANY (
SELECT column
FROM table2
);
这里,
column是要过滤的列名table1和table2是要比较的两个表OPERATOR是连接两个查询的任何 SQL 操作符ANY比较table1和table2,以查看是否存在任何匹配项
注意:column 占位符可以代表来自两个表的多个不同列。
示例 1:SQL ANY 操作符
假设我们想找到年龄与任何一个学生的年龄相似的老师。那么,我们可以使用以下查询:
SELECT *
FROM Teachers
WHERE age = ANY (
SELECT age
FROM Students
);
在这里,子查询从 Students 表中返回所有年龄。
SELECT age
FROM Students
并且,下面的条件将学生年龄(由子查询返回)与教师的年龄进行比较。
WHERE age = ANY (...)
如果存在任何匹配项,则选择 Teachers 表中对应的行。
示例 2:SQL ANY 与 < 操作符
我们可以使用任何比较操作符,如 =、>、< 等,与 ANY 和 ALL 关键字一起使用。
我们来看一个例子,我们想找到年龄小于任何学生的老师。
SELECT *
FROM Teachers
WHERE age < ANY (
SELECT age
FROM Students
);
在这里,SQL 命令选择如果外部查询中的 age 小于子查询中的任何 age 的行。
SQL ALL 操作符
SQL ALL 将第一个表的值与第二个表的所有值进行比较,如果与所有值都匹配,则返回该行。
它具有以下语法:
SELECT column
FROM table1
WHERE column OPERATOR ALL (
SELECT column
FROM table2
);
这里,
column是要过滤的列名table1和table2是要比较的两个表OPERATOR是连接两个查询的任何 SQL 操作符ALL比较table1和table2,以查看所有值是否都匹配
注意:column 占位符可以代表来自两个表的多个不同列。
示例 3:SQL ALL 操作符
例如,如果我们想找到年龄大于所有学生的老师,我们可以使用:
SELECT *
FROM Teachers
WHERE age > ALL (
SELECT age
FROM Students
);
在这里,下面的子查询从 Students 表中返回所有年龄。
SELECT age
FROM Students
并且,下面的条件将学生年龄(由子查询返回)与教师的年龄进行比较。
WHERE age > ALL (...)
如果教师的年龄大于所有学生的年龄,则选择 Teachers 表中对应的行。
另请阅读