📜  PostgreSQL – 任何运算符

📅  最后修改于: 2022-05-13 01:57:14.704000             🧑  作者: Mango

PostgreSQL – 任何运算符

PostgreSQL 有一个 ANY运算符,用于将标量值与子查询返回的一组值进行比较。

Syntax: expression operator ANY(subquery)

使用 PostgreSQL ANY运算符时必须遵循以下规则:

  • 子查询必须正好返回一列。
  • 的ANY运算符必须通过以下运算符之一前面=,<=,>,和<>
  • 如果子查询的任何值满足条件,则 ANY运算符返回 true,否则返回 false。

在本文中,我们将使用示例 DVD 租赁数据库,此处进行了说明,可以通过单击示例中的此链接进行下载。

示例 1:

在这里,我们将从样本数据库的“电影”表中查询按电影类别分组的电影的最大长度。

SELECT title
FROM film
WHERE length >= ANY(
    SELECT MAX( length )
    FROM film
    INNER JOIN film_category USING(film_id)
    GROUP BY  category_id );

输出:

示例 2:
在这里,我们将从示例数据库的“类别”表中查询类别为 Action(category_id = 1) 或 Drama(category_id = 7) 的电影。

SELECT
    title,
    category_id
FROM
    film
INNER JOIN film_category
        USING(film_id)
WHERE
    category_id = ANY(
        SELECT
            category_id
        FROM
            category
        WHERE
            NAME = 'Action'
            OR NAME = 'Drama'
    );

输出: