了解SQL ANY和ALL运算符

时间:2020-02-23 14:32:23  来源:igfitidea点击:

在本文中,我们将讨论SQL ANY和ALL运算符。

众所周知,运算符充当对某些数据值执行任何操作的媒介或者催化剂。
各种运算符包括按位运算符,算术运算符,逻辑运算符等。

SQL ANY和ALL运算符属于逻辑运算符类别,即,在满足条件时评估为真或者假。

现在让我们详细了解有关SQL ANY和ALL运算符的信息。

什么是SQL ANY运算符?

如上所述," SQL ANY运算符"是一种逻辑运算符,在满足以下条件时其评估结果为true。

  • 满足子查询中提到的条件的任何记录/数据值。

因此,如果任何数据值通过子查询条件,我们都可以说ANY运算符返回TRUE。

现在让我们在接下来的部分中了解ANY运算符的结构。

SQL ANY运算符的语法

SELECT columns
FROM table
WHERE column-name operator ANY
(sub-query);

  • 子查询:该查询可以是任何标准SQL查询。

  • 运算符:SQL比较运算符,用于比较数据值。

SQL ANY运算符的计算结果为TRUE。
从而返回选择的列或者执行适当的操作/查询。

了解了SQL ANY运算符的工作原理之后,现在让我们通过后面的示例中的示例来实现相同的功能。

通过示例实现SQL ANY运算符

在下面的示例中,我们使用SELECT语句和赋值运算符(=)实现了SQL ANY运算符。

SELECT Cost,City
FROM Info
WHERE Cost = ANY (SELECT Cost FROM Info WHERE Cost = 100);

其中我们显示了"费用"和"城市"列的数据值,其中至少一个"费用"值为100。

注意:我们可以使用SQL ANY运算符以类似的方式匹配其他表中的列和数据。

现在,我们选择了表的所有数据值,"费用"列中的任何一个数据值都大于50。

SELECT *
FROM Info
WHERE Cost = ANY (SELECT Cost FROM Info WHERE Cost > 50);

此外,我们选择了表中所有"费用"值都不等于100的所有数据值。

SELECT *
FROM Info
WHERE Cost = ANY (SELECT Cost FROM Info WHERE Cost <> 100);

在下面的代码中,我们显示了所有"费用"列中的任何值大于或者等于50的数据值。

SELECT *
FROM Info
WHERE Cost = ANY (SELECT Cost FROM Info WHERE Cost >= 50);

什么是SQL ALL运算符?

仅当表的所有数据值均符合条件时," SQL ALL运算符"的计算结果才为TRUE。

如果任何数据值违反查询中提到的条件,我们将无法获得理想的结果。

现在让我们在下面的部分中了解SQL ALL运算符的语法。

SQL ALL运算符的语法

当所有数据值均通过查询中提到的测试条件时,SQL ALL运算符的结果为TRUE。

SELECT columns
FROM table
WHERE column-name operator ALL
(sub-query);

注意:SQL ANY和ALL运算符可以与SQL WHERE,GROUPBY以及HAVING子句一起使用。

通过示例实现SQL ALL Operator

现在,让我们应用SQL ALL运算符的语法并仔细阅读以下示例。

SELECT ALL city 
FROM Info
WHERE TRUE;

在上面的示例中,我们显示了" city"列的所有数据值,该值不为NULL,即为city列的每一行都指定了一个值。

现在,我们从表中选择了所有数据值,"费用"列的每个数据值都大于100。
同时,我们通过了一个子查询,选择了所有小于100的数据值,以传递给ALL运算符。

SELECT *
FROM Info
WHERE Cost > All (SELECT Cost FROM Info WHERE Cost <100);

其中我们使用了SQL GROUP BY和SQL HAVING子句以及SQL ALL Operator。

现在,我们选择了表格的所有数据列,并使用"城市"值将其分组。
此外,我们选择所有数据值的方式应使所选的每个数据值的最小"成本"应小于"成本"列的"平均"。

SELECT id,city ,Cost
FROM Info 
GROUP BY city 
HAVING MIN(Cost) < ALL (SELECT AVG(Cost) FROM Info);