我的SQL数据库中有两个表。我想检查Specifier
列是否具有完全相同的顺序完全相同的数据。
确定情况,因为两个表在Specifier
列中具有相同顺序的相同数据:
-- Table1:
RowID Specifier
187 1
188 1
189 2
-- Table2:
RowID Specifier
181 1
182 1
183 2
错误情况,因为数据不同:
-- Table1:
RowID Specifier
187 1
188 2
189 3
-- Table2:
RowID Specifier
181 1
182 2
183 2
错误情况,因为数据的顺序不同:
-- Table1:
RowID Specifier
187 1
188 1
189 2
-- Table2:
RowID Specifier
181 1
182 2
183 1
错误情况,因为数据量不同:
-- Table1:
RowID Specifier
187 1
188 1
189 2
-- Table2:
RowID Specifier
181 1
182 1
183 2
184 1
我编写了以下查询,该查询几乎可以正常工作,并且如果一个表具有另一个表没有的值,则会正确给出错误,但是如果仅顺序不正确,它将错误地不给出错误:
IF EXISTS
(SELECT Specifier FROM Table1 EXCEPT SELECT Specifier FROM Table2
UNION ALL
SELECT Specifier FROM Table2 EXCEPT SELECT Specifier FROM Table1)
BEGIN
THROW 99999,'Mismatching Specifiers between the two tables',1;
END;