Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 显示不一致结果的工会声明_Sql_Oracle - Fatal编程技术网

Sql 显示不一致结果的工会声明

Sql 显示不一致结果的工会声明,sql,oracle,Sql,Oracle,我有一个SQL查询,它由两个并集在一起的SELECT语句组成。单独运行时,第一个选择返回10条记录,第二个选择返回1条记录,因此当我合并两个选择时,我希望返回11条记录,但事实并非如此,我只得到9条记录 由于SQL的性质,我不能在这里发布它,但它包含了跨越5个表的大量连接。返回的所有内容都是正确和有效的 我只是想知道是否有人在合并两个SELECT语句时看到过这个问题,是否有人对可能的原因有任何建议,甚至为我指出了正确的方向,谢谢。默认情况下,Oracle会对合并的结果应用隐式distinct子句

我有一个SQL查询,它由两个并集在一起的SELECT语句组成。单独运行时,第一个选择返回10条记录,第二个选择返回1条记录,因此当我合并两个选择时,我希望返回11条记录,但事实并非如此,我只得到9条记录

由于SQL的性质,我不能在这里发布它,但它包含了跨越5个表的大量连接。返回的所有内容都是正确和有效的


我只是想知道是否有人在合并两个SELECT语句时看到过这个问题,是否有人对可能的原因有任何建议,甚至为我指出了正确的方向,谢谢。

默认情况下,Oracle会对合并的结果应用隐式distinct子句。您可能需要检查单独查询的结果是否包含公共项


如果不希望出现这种行为,则需要改用UNION ALL子句。

默认情况下,Oracle会对UNION的结果应用隐式distinct子句。您可能需要检查单独查询的结果是否包含公共项


如果不希望出现这种行为,则需要使用UNION ALL子句。

尝试使用
UNION ALL
而不是仅使用
UNION
。UNION只返回不同的行

尝试使用
UNION ALL
而不是仅使用
UNION
。UNION只返回不同的行

默认情况下删除重复项。为防止重复项被删除,应使用

引用文件:

UNION的默认行为是从结果中删除重复的行。可选的DISTINCT关键字除了默认关键字外没有其他效果,因为它还指定删除重复行。使用可选的ALL关键字,不会删除重复的行,结果包括所有SELECT语句中的所有匹配行

默认情况下删除重复项。为防止重复项被删除,应使用

引用文件:

UNION的默认行为是从结果中删除重复的行。可选的DISTINCT关键字除了默认关键字外没有其他效果,因为它还指定删除重复行。使用可选的ALL关键字,不会删除重复的行,结果包括所有SELECT语句中的所有匹配行


您不应该期望正好有11条记录。UNION将把重复项“合并”到一行中,所以您最多需要11条记录。如果你得到9,这可能意味着它们在前10条记录中是重复的。。。你能和大家一起试试吗?和/或在第一个查询中尝试使用DISTINCT,以查看您得到的行数。如果您不发布代码,我们将无法帮助您<代码>联合不应以这种方式运行,因此代码对于确定问题至关重要。我建议创建一个代码来显示问题——它不一定是您的确切代码——只是显示相同行为的东西。@RaphaëlAlthaus谢谢您的帮助,现在工作得很好,但不知道ALL选项。:)您不应该期望正好有11条记录。UNION将把重复项“合并”到一行中,所以您最多需要11条记录。如果你得到9,这可能意味着它们在前10条记录中是重复的。。。你能和大家一起试试吗?和/或在第一个查询中尝试使用DISTINCT,以查看您得到的行数。如果您不发布代码,我们将无法帮助您<代码>联合不应以这种方式运行,因此代码对于确定问题至关重要。我建议创建一个代码来显示问题——它不一定是您的确切代码——只是显示相同行为的东西。@RaphaëlAlthaus谢谢您的帮助,现在工作得很好,但不知道ALL选项。:)