PostgreSQL教程

PostgreSQL INTERSECT

在本节中,我们将了解 PostgreSQL Intersect运算符的工作原理,该运算符用于合并多个输出。
和 PostgreSQL相交运算符的示例,并带有单个,多个表达式和 Order by

什么是PostgreSQL Intersect运算符?

在 PostgreSQL , INTERSECT运算符,检索两个输出中可用的任何行,就像 UNION 和运算符除外。
换句话说,我们可以说 PostgreSQL相交运算符可以得到多个数据集的交集。
如果两个数据集中都存在一条记录,则该记录将涉及INTERSECT结果,并且每个数据集均由SELECT c定义。指令。但是,如果一条记录出现在一个数据集中而不是另一个数据集中,则它将从 INTERSECT 结果中删除。
下图表示最终的输出,该结果是生成的由 INTERSECT运算符。
PostgreSQL INTERSECT
在上图中,蓝色区域显示圆P和圆Q之间的相交。
在INTERSECT中必须每个 SELECT命令具有相似数据类型的相似输出字段。

PostgreSQL Intersect运算符的语法

PostgreSQL Intersect运算符的图示如下:
SELECT expression1, expression2, ... expression_n
FROM tables
[WHERE conditions]
INTERSECT
SELECT expression1, expression2, ... expression_n
FROM tables
[WHERE conditions];
在上面的语法中,我们有以下参数,我们在下表中对其进行了讨论:
参数 说明
expression1, expression2, ... expression_n 这些是我们要检索的列或计算。
tables 我们要从中获取记录的表。
WHERE conditions 这些是选择值必须发生的条件。这是一个可选参数。
注意: 要使用INTERSECT运算符,SELECT命令中出现的列必须遵循以下规则:
两个SELECT子句中的表达式或列数必须匹配。 等效的表达式在SELECT命令中必须具有相似的数据类型,例如expression1在第一和第二个 SELECT 命令中必须具有相似的数据类型。

PostgreSQL INTERSECT运算符的示例

要了解 PostgreSQL intersect运算符的工作,我们将使用 top_rated_cars 和 most_reliable_cars 表:
要查看 top_rated_cars 表中的数据,我们将使用 SELECT 命令,如以下命令所示:
SELECT * FROM top_rated_cars;
输出
执行上述命令后,我们将得到以下结果:
PostgreSQL INTERSECT
以下命令从 most_reliable_cars 表返回数据:
SELECT * FROM most_reliable_cars;
输出
在执行上述命令时,我们将获得以下输出:
PostgreSQL INTERSECT 具有单个表达式的PostgreSQL相交示例
在下面的示例中,我们将使用INTERSECT运算符,该运算符包含一个具有相似数据类型的字段:
SELECT Car_name
FROM top_rated_cars
INTERSECT
SELECT Car_name
FROM most_reliable_cars;
输出
执行上述命令后,我们将获得以下输出:
PostgreSQL INTERSECT 注意: 在上面的示例中,如果Car_name同时出现在top_rated_cars和most_reliable_cars表中,则它将出现在我们的输出中。
现在,如果我们要在上述示例中将 WHERE子句添加到INTERSECT命令中,就像这样:
SELECT Car_name
FROM top_rated_cars
WHERE launch_year< 2020
INTERSECT
SELECT Car_name
FROM most_reliable_cars
Where launch_year=2020;
输出
执行上述命令后,我们将获得以下输出,其中显示了使用where条件获取的相交值。
PostgreSQL INTERSECT
注意: 在上面的示例中,WHERE子句已添加到所有数据集中。
初始数据集已被过滤,因此仅 launch_year 小于 2022 的 top_rated_cars 表中的记录>返回。 第二个数据集已被过滤;因此,仅返回 launch_year 等于 2020 的 most_reliable_cars 表中的记录。

具有各种表达式的PostgreSQL Intersect示例

我们现在将看到一个示例示例,以了解PostgreSQL INTERSECT运算符使用多个列的情况。
在下面的示例中,我们将在PostgreSQL中使用INTERSECT运算符检索各种列。
为此,我们采用 employee 和组织数据库中的 部门 表,该表是我们在PostgreSQL教程前面的部分中创建的。
SELECT address, phone
FROM employee
WHERE employee_name<> 'ross'
INTERSECT
SELECT address, phone
FROM department
WHERE address<>'London';
输出
执行上述命令后,我们将获得以下输出,其中显示了 员工 表,其中地址和电话值与部门表的地址和电话值匹配。
PostgreSQL INTERSECT
在上面的示例中,要添加的每个数据集的WHERE条件都会过滤输出;因此,仅返回 employee 表中的记录,其中 employee_name 不是 >。
在地址不是伦敦。
带有ORDER BY子句的PostgreSQL INTERSECT
如果要对INTERSECT运算符的输出进行排序,请放置 ORDER BY
PostgreSQL与ORDER BY子句相交的语法
下图用于表示PostgreSQL与order by子句相交的语法:
SELECT select_list
FROM table1
INTERSECT
SELECT select_list
FROM table2
ORDER BY sort_expression;

PostgreSQL的示例与Order by子句相交

在以下示例中,我们使用与 employee 类似的表>和 部门 了解带ORDER BY子句的INTERSECT运算符的用法:
SELECT address, phone
FROM employee
WHERE employee_name<> 'ross'
INTERSECT
SELECT address, phone
FROM department
WHERE address<>'London'
ORDER BY 1;
输出
执行上述命令后,我们将得到以下结果集,该结果集按地址的升序显示结果,由 ORDER BY 1 表示。
地址列字段在输出中位于#1位置。
PostgreSQL INTERSECT

概述

在PostgreSQL Intersect部分中,我们学习了以下主题:
我们已使用 PostgreSQL Intersect Operator 合并多个命令的输出。 我们还了解了 PostgreSQL相交运算符与单复数 我们还使用了 PostgreSQL与ORDER Bys相交子句对命令输出进行排序。
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4