Сравнение NULL

Я разрабатываю динамический 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 имеет значение null, а table-b col1 имеет значение null, я бы считал их равными.

Я знаю, что могу поставить ISNULL вокруг своих столбцов, но это динамический запрос, который создается, поэтому я знаю только имя столбца, а не тип данных.

Есть предложения?

5
задан user829237 10 January 2012 в 15:30
поделиться