У меня есть две таблицы в моей базе данных SQL. Я хочу проверить, имеют ли столбцы Specifier
одинаковые данные в одном и том же порядке.
ОК, случай , поскольку обе таблицы содержат одинаковые данные в одинаковом порядке в Specifier
столбец:
-- Table1:
RowID Specifier
187 1
188 1
189 2
-- Table2:
RowID Specifier
181 1
182 1
183 2
регистр ERROR , так как данные отличаются:
-- Table1:
RowID Specifier
187 1
188 2
189 3
-- Table2:
RowID Specifier
181 1
182 2
183 2
регистр ERROR , поскольку данныев другом порядке:
-- Table1:
RowID Specifier
187 1
188 1
189 2
-- Table2:
RowID Specifier
181 1
182 2
183 1
ОШИБКА case , поскольку различное количество данных:
-- 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;