我试图找出如何查看两个表在sql中是否相同。这些表应该完全相同,但列的顺序略有不同。我最初的做法是互相减去两个表,并验证结果是否为0条记录,但由于列顺序的不同,我认为这样做不起作用。有什么建议么?非常感谢您的帮助,
谢谢
约翰
答案 0 :(得分:1)
如果要比较表,可以尝试以下操作; minus
和except
取决于yout数据库管理系统使用的SQL。
select * from tableA
minus
select * from tableB
如果查询没有返回任何行,则两个表的数据都相同,现在如果两个表具有相同的行数,这将起作用。
比较两个不同列大小的不同条目时,您将需要使用
LEFT JOIN
有一些原始资料可供参考:
答案 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
如果视图返回的结果数与两个原始表的长度相同,则对于这些字段,两个表是相同的。