了解SQL ANY和ALL运算符
在本文中,我们将讨论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);