我正在設計一個動態SQL查詢,它將檢查目標表的源表。我想比較源的行和目標的行以檢查差異。比較NULL
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爲null,那麼我會認爲它們是相等的。
我知道我可以在我的列周圍放置一個ISNULL,但這是一個動態查詢正在建立,所以我只知道列名不是數據類型。
有什麼建議嗎?
如果(雖然我猜這不太可能是因爲名字)'key'字段是NULL? ON(B.KEY = A.KEY或(A.KEY爲NULL且B.KEY爲NULL))? – MatBailie 2012-01-10 15:36:44
@Dems - 它不是(或者至少這個問題只提到'col1,col2')。 – 2012-01-10 15:37:33
謝謝!完美的作品! – user829237 2012-01-11 09:07:49