PostgreSQL教程

PostgreSQL EXCEPT

在本节中,我们将了解 PostgreSQL EXCEPT运算符的工作原理,该运算符用于返回初始命令,不会出现在第二条命令的输出中。
以及 PostgreSQL Except运算符的示例,其中单个和多个表达式和 order by子句。

什么是PostgreSQL Except运算符?

在 PostgreSQL , EXCEPT 运算符用于通过等同于两个或多个命令的输出来检索行,就像UNION和 INTERSECT 运算符。
换句话说,我们可以说 PostgreSQL EXCEPT 运算符从左(第一个SELECT)命令检索不同的行。 ,它不在右(第二个SELECT)逗号的结果集中nd 。并且所有 SELECT命令都将定义一个数据集。
EXCEPT运算符将从初始数据集中返回所有记录,然后从第二个数据集中消除所有值。
下图表示由EXCEPT运算符产生的最终输出。
PostgreSQL EXCEPT
在上图中,芥末黄色区域表示执行EXCEPT命令后检索到的记录。并且这些记录显示在圆圈P 中,而不是在圆圈Q 中。
每个 SELECT 命令都在EXCEPT中命令必须具有类似数量的具有相同数据类型的输出字段。

PostgreSQL EXCEPT运算符的语法

除运算符外,PostgreSQL的插图如下:
SELECT expression1, expression2, ... expression_n
FROM table P
[WHERE conditions]
EXCEPT
SELECT expression1, expression2, ... expression_n
FROM table Q
[WHERE conditions];
在上面的语法中,我们有以下参数,我们在下表中对其进行了讨论:
参数 说明
expression1, expression2, ... expression_n 这些是我们要在两个SELECT命令之间进行比较的列或计算。
并且它们不需要在每个SELECT命令中都匹配字段,而等效列必须包含等效数据类型。
table 这些是我们要从中获取记录的表。
WHERE conditions 这些是要对值进行排序所必须满足的条件。这是一个可选参数。

PostgreSQL Except运算符的示例

要了解 PostgreSQL Except运算符的工作,我们将使用 top_rated_cars <在 postgresql union教程中创建的 strong> 和 most_reliable_cars 表:
要查看中的数据top_rated_cars 表中,我们将使用 SELECT 命令,如以下命令所示:
SELECT * FROM top_rated_cars;
输出
执行上述命令后,我们将得到以下结果:
PostgreSQL EXCEPT
以下命令从 most_reliable_cars 表中返回数据:
SELECT * FROM most_reliable_cars;
输出
在执行上述命令时,我们将获得以下输出:
PostgreSQL EXCEPT 具有单个表达式的PostgreSQL EXCEPT示例
在下面的示例中,我们将使用EXCEPT运算符,其中包含一个具有相似数据类型的字段:
SELECT Car_name
FROM top_rated_cars
EXCEPT
SELECT Car_name
FROM most_reliable_cars;
输出
执行上述命令后,我们将获得以下输出:
PostgreSQL EXCEPT
在上面的示例中,EXCEPT运算符检索 top_rated_cars 中的所有 car_name 值表,而不在 most_reliable_cars 表中。
这表示 top_rated_cars 表,并且位于 most_reliable_cars 中, car_name 值不会出现在EXCEPT中命令输出。

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

我们现在将看到一个示例示例,以了解PostgreSQL Except运算符使用多个列的情况。
在下面的示例中,我们将使用PostgreSQL中的 Except运算符检索各种列。
为此,我们从中获取 员工 和 部门 表> Organization 数据库,这是我们在PostgreSQL教程的前面部分中创建的。
SELECT address, phone
FROM employee
WHERE employee_name<>'ross'
EXCEPT
SELECT address, phone
FROM department
WHERE address<>'London';
输出
执行上述命令后,我们将获得以下输出,其中显示了 员工 表中,其中地址和电话值与部门表的地址和电话值不匹配。
PostgreSQL EXCEPT
在上面的示例中,Except运算符命令将使用 地址,电话 检索员工表的值值与 部门表的地址和电话列值不匹配。
PostgreSQL,但带有ORDER BY子句
如果要对EXCEPT运算符的输出进行排序,请放置 ORDER BY子句在查询列表的最终命令中。
除带有ORDER BY子句的PostgreSQL语法
下图用于按顺序表示PostgreSQL除外按条款:
SELECT select_list
FROM table1
EXCEPT
SELECT select_list
FROM table2
ORDER BY sort_expression;

带有Order by子句的PostgreSQL EXCEPT示例

在以下示例中,我们使用与 top_rated_car 类似的表>和 most_reliable_cars 来了解EXCEPT运算符与ORDER BY子句的用法:
SELECT * FROM top_rated_cars
EXCEPT
SELECT * FROM most_reliable_cars
ORDER BY Car_name;
输出
执行上述命令后,我们将获得以下结果集,该结果集以升序显示由 top_rated_cars 排序的按汽车名称订购。并且 Car_name 列字段在输出中位于#1位置。
PostgreSQL除外
随后,在上面的示例中,两个 SELECT 命令之间的列名是不同的。
在中引用列会更有益ORDER BY 子句按它们在输出中的位置。

概述

在 PostgreSQL除外部分中,我们了解到以下主题:
我们已使用 PostgreSQL Except Operator 返回了初始命令中未出现在第二个命令输出中的行。 我们还了解 PostgreSQL Except 运算符与单复数 我们还使用了除带有ORDER By的PostgreSQL以外的子句子句来对命令输出进行排序。
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4