-1

以下のステートメントが結果を返さない理由は何ですか? を省略すると、すべてのレコードが取得され、検索しようとしている多くのケースで s が一致しないwhereことが明確にわかります。VarcharFieldwhere で ACC と CON を交換し、<>代わりに を使用してみました!=

SELECT Con.VarcharField, ACC.VarcharField
FROM    
dbo.Contact AS CON
INNER JOIN Account as ACC ON ACC.AccountId = CON.ContactID
WHERE ACC.VarcharField != CON.VarcharField

アップデート

問題は、テーブル内の null 値にあります。NULL 比較を回避する方法はありますか?

4

2 に答える 2

0

NULL の可能性がある文字列フィールドとの比較には、IsNull() 関数を好みます。気をつけろ。「値なし」の定義と、一致するかどうかによって異なります。

WHERE IsNULL(ACC.VarcharField, '') != IsNull(CON.VarcharField, '')
于 2013-10-24T15:52:49.650 に答える