У меня есть две таблицы в SQL Server, table1
и table2
. Оба имеют одинаковую схему и одинаковое количество строк. Я пытаюсь выяснить, есть ли какая-либо разница в значении столбца для определенных строк.
Я сделал с Except
, чтобы найти разницу, но есть миллионы строк, поэтому пытаюсь настроить.
Код:
select * from T1
except
select * from T2
Но приведенный выше код не возвращает правильный результат.
CREATE TABLE T1
(
KEYCOL VARCHAR(60),
COL2 CHAR(20),
COL3 INT,
COL4 VARCHAR(30)
)
INSERT INTO T1
SELECT 1000004177 R09 1 909622 UNION ALL
SELECT 1000004478 Q22 1 3659573 UNION ALL
SELECT 1000008983 Q16 1 955987 UNION ALL
SELECT 1000010178 XX1 1 3069968 UNION ALL
SELECT 1000013347 R09 1 3679779 UNION ALL
SELECT 1000014510 Q16 1 YYY23 UNION ALL
SELECT 1000015230 R17 1 1000015230 UNION ALL
SELECT 1000016049 Q16 1 1000016049 UNION ALL
SELECT 1000016332 Q16 1 1000016332
CREATE TABLE T2
(
KEYCOL VARCHAR(60),
COL2 CHAR(20),
COL3 INT,
COL4 VARCHAR(30)
)
INSERT INTO T2
SELECT 1000004177 R09 1 909622 UNION ALL
SELECT 1000004478 Q22 1 3659573 UNION ALL
SELECT 1000008983 Q16 1 955987 UNION ALL
SELECT 1000010178 ZZZ 1 3069968 UNION ALL
SELECT 1000013347 R09 1 3679779 UNION ALL
SELECT 1000014510 Q16 1 ZZZ23 UNION ALL
SELECT 1000015230 R17 1 1000015230 UNION ALL
SELECT 1000016049 Q16 1 1000016049 UNION ALL
SELECT 1000016332 Q16 1 1000016332
Желаемый вывод:
1000004177 NO CHANGE
1000004478 NO CHANGE
1000008983 NO CHANGE
1000010178 CHANGE IN COL2
1000013347 NO CHANGE
1000014510 CHANGE IN COL4
1000015230 NO CHANGE
1000016049 NO CHANGE
1000016332 NO CHANGE
Пожалуйста, поделитесь своими мыслями.