Я разрабатываю динамический SQL-запрос, который будет проверять исходную таблицу по целевой таблице. Я хотел бы сравнить строки источника со строками цели, чтобы проверить различия.
CREATE TABLE TABLE_A (KEY INT, COL1 INT, COL2 INT)
CREATE TABLE TABLE_B (KEY INT, COL1 INT, COL2 INT)
Итак, я создал это утверждение:
SELECT A.* FROM TABLE_A A
INNER JOIN TABLE_B B
ON B.KEY = A.KEY
AND (B.COL1<>A.COL1 OR B.COL2<>A.COL2)
Но это работает только до тех пор, пока значения col1 и col2 не равны нулю.
Если table-a col1 равно нулю, а table-b col1 равно нулю, я бы посчитал их равными.
Я знаю, что могу поставить ISNULL вокруг моих столбцов, но это динамический запрос, поэтому я знаю только имя столбца, а не тип данных.
Есть предложения?