SQL |所有和任何

全部&任何 是SQL中的逻辑运算符。结果返回布尔值。

null

全部的

ALL运算符用于选择select语句的所有元组。它还用于将一个值与另一个值集中的每个值或子查询的结果进行比较。

  • 如果所有子查询值都满足条件,ALL运算符将返回TRUE。如果所有子查询值都满足条件,则ALL前面必须有比较运算符,并计算为true。
  • ALL与SELECT、WHERE、HAVING语句一起使用。

全部带有SELECT语句:

Syntax:
SELECT ALL field_name
FROM table_name
WHERE condition(s);

都带有WHERE或have语句:

Syntax:
SELECT column_name(s)
FROM table_name
WHERE column_name comparison_operator ALL
(SELECT column_name
FROM table_name
WHERE condition(s));

例子: 考虑下面的产品表和订单详细信息表,

产品表

图片[1]-SQL |所有和任何-yiteyi-C++库

OrderDetails表

图片[2]-SQL |所有和任何-yiteyi-C++库

询问

  • 找到所有产品的名称。
    SELECT ALL ProductName 
    FROM Products
    WHERE TRUE;
    

    输出:

    图片[3]-SQL |所有和任何-yiteyi-C++库

  • 如果OrderDetails中的所有记录的数量都等于6或2,请查找产品名称。
    SELECT ProductName 
    FROM Products
    WHERE ProductID = ALL (SELECT ProductId
                           FROM OrderDetails
                           WHERE Quantity = 6 OR Quantity = 2);
    

    输出:

    图片[4]-SQL |所有和任何-yiteyi-C++库

  • 查找OrderID的所有产品中最大数量大于所有OrderID平均数量的OrderID。
    SELECT OrderID 
    FROM OrderDetails 
    GROUP BY OrderID 
    HAVING max(Quantity) > ALL (SELECT avg(Quantity) 
                                FROM OrderDetails 
                                GROUP BY OrderID);
    

    输出:

    图片[5]-SQL |所有和任何-yiteyi-C++库

任何

ANY将一个值与列表中的每个值或查询结果进行比较,如果内部查询的结果至少包含一行,则其计算结果为true。

  • 如果任何子查询值满足条件,则ANY返回true。
  • ANY前面必须有比较运算符。 语法:
SELECT column_name(s)
FROM table_name
WHERE column_name comparison_operator ANY
(SELECT column_name
FROM table_name
WHERE condition(s));

询问

  • 查找OrderDetails表中有任何记录的产品的不同类别ID。
    SELECT DISTINCT CategoryID
    FROM Products 
    WHERE ProductID = ANY (SELECT ProductID 
                           FROM OrderDetails);
    

    输出:

    图片[6]-SQL |所有和任何-yiteyi-C++库

  • 查找OrderDetails表中Quantity=9的所有记录。
    SELECT ProductName
    FROM Products
    WHERE ProductID = ANY (SELECT ProductID
                           FROM OrderDetails
                           WHERE Quantity = 9);
    

    图片[7]-SQL |所有和任何-yiteyi-C++库

本文由 阿努伊·乔汉 .如果你喜欢GeekSforgek,并想贡献自己的力量,你也可以使用 贡献极客。组织 或者把你的文章寄到contribute@geeksforgeeks.org.看到你的文章出现在Geeksforgeks主页上,并帮助其他极客。

如果您发现任何不正确的地方,或者您想分享有关上述主题的更多信息,请写下评论。

© 版权声明
THE END
喜欢就支持一下吧
点赞9 分享