如何比较具有相同列但顺序不同(SQL或python)的两个表?

时间:2019-07-09 21:48:40

标签: python sql apache-spark dataframe

我试图找出如何查看两个表在sql中是否相同。这些表应该完全相同,但列的顺序略有不同。我最初的做法是互相减去两个表,并验证结果是否为0条记录,但由于列顺序的不同,我认为这样做不起作用。有什么建议么?非常感谢您的帮助,

谢谢

约翰

3 个答案:

答案 0 :(得分:1)

如果要比较表,可以尝试以下操作; minusexcept取决于yout数据库管理系统使用的SQL。

select * from tableA
minus
select * from tableB

如果查询没有返回任何行,则两个表的数据都相同,现在如果两个表具有相同的行数,这将起作用。

比较两个不同列大小的不同条目时,您将需要使用

LEFT JOIN 

有一些原始资料可供参考:

Union! SQL Server

Compare two tables with different entries and column

答案 1 :(得分:0)

可能不是您要寻找的答案,但是您可以创建一个视图并从中按匹配顺序选择列。然后比较应该更容易。

答案 2 :(得分:0)

您可以在每个字段上执行完全外部联接,然后将结果的长度与两个原始表的长度进行比较。

SELECT * from 
Table_A FULL OUTER JOIN
Table_B on 
A.Field_X = B.Field_X
A.Field_Y = B.Field_Y

如果视图返回的结果数与两个原始表的长度相同,则对于这些字段,两个表是相同的。