我有28个固定宽度的文件,我分解后导入到SQL中。为了方便起见,我将它们称为industry1 to industry28。通过在excel中检查,我发现总共有38,700行,有1257个重复项。副本将以某种随机的方式出现。
行业表有28个字段,其中有9个字段的复合主键。重复项是整行的(全部28个字段)。
当我尝试使用UNION ALL (下面的例子)时,它只删除了28个重复项。有人能解释一下为什么会这样吗?
Select field1, field2...from industry1
UNION ALL
Select field1, field2...from industry2
UNION ALL
Select field1, field2...from industry3
... and so on发布于 2018-04-19 02:43:08
如果您希望从查询中消除重复行,则应该使用UNION而不是UNION ALL。UNION本质上为您提供了DISTINCT结果集,如果您不介意重复或想要稍微快一点的执行速度,那么UNION ALL将是一个更好的选择。
来自谷歌:
UNION ALL命令与UNION命令相同,不同之处在于UNION ALL选择所有值。Union和Union all之间的不同之处在于,Union all不会消除重复的行,而只是从符合查询条件的所有表中提取所有行,并将它们合并到一个表中。
https://stackoverflow.com/questions/49906787
复制相似问题