使用CTE和/或ORDER BY比较两个查询的结果

尔曼

问题:SELECT使用公共表表达式(WITH子句)比较两个查询的结果,而忽略行的顺序。

第一种方法:将行集的对称差与Oracle的集合运算符结合使用(Q1Q2进行比较查询):

WITH A AS (Q1), B AS (Q2)
SELECT * FROM A MINUS SELECT * FROM B
UNION ALL
SELECT * FROM B MINUS SELECT * FROM A;

这种方法有一个缺点-我们不能替换WITH之前子句的查询SELECT

第二种方法:在不使用的情况下实现对称差异WITH

(Q1) MINUS (Q2) UNION ALL (Q2) MINUS (Q1);

它也有一个缺点-我们不能替换有ORDER BY子句的查询

我只想ORDER BY从查询中删除整个子句,然后使用第二种方法。因此,问题是可以考虑其他哪些方法?

戈登·利诺夫

Oracle允许with在子查询中使用嵌套子句。因此,您可以嵌套查询:

SELECT * FROM (Q1) MINUS SELECT * FROM (Q2)
UNION ALL
SELECT * FROM (Q2) MINUS SELECT * FROM (Q1);

如果您要自动构建查询,则此方法应该很容易工作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Java的8,比较两个地图和返回结果

如何从同一个表列两个查询结果的身高和体重

如何使用Java中的函数列表比较两个对象的字段并求和结果

MySQL查询根据条件对最后两个结果进行分组和排序

使用Ansible比较两个文件

比较和排序两个列表

使用子查询比较两个表?

同时使用列和聚合结果集来连接两个查询

比较两个表或查询和表

如何使用更新合并两个查询的结果

如何在查询中比较两个日期和时间

连接两个选择查询和排序结果

使用WordNet比较两个短语?

相同的联接查询:通过Phalcon和phpMyAdmin获得两个不同的结果

使用JPA标准查询比较两个日期之间的差异

我们如何合并两个具有分组条件和两个条件的查询的结果

使用两个日期比较而不是日期范围查询会在MongoDB中产生不同的结果

如何使用一个SQL查询从两个表中获得结果?

如何使用sp将两个选择查询结果合并为一个结果?

SQL查询使用同一个表比较两个WHERE子句

使用两个 Laravel 模型查询并返回结果

如何使用 UNION 添加两个不同查询的结果

具有相同表和连接逻辑但结果不同的两个查询

将两个MYSQL查询列结果合二为一在ORDER BY中使用

如何比较两个输入值(文本和复选框)并输出结果

将两个密码查询合并为单个查询和单个结果

如何在sql查询中比较两个表匹配和不匹配?

Azure 表存储:是否可以使用与添加两个列值的结果进行比较的查询条件?

在 SQL 中使用 UNION 透视两个查询的结果