0

列にNULLを含めるのではなく、0を指定する必要があります。

次の2つのテーブルがあるとします。

TABLE1
ClientID        OrderCount
1               NULL
2               NULL
3               NULL
4               NULL


Table2
ClientID        OrderCount
1               2
3               4
4               6

注:両方のテーブルのOrderCount列はINTデータ型です。

UPDATE TABLE1
SET OrderCount = ISNULL(TABLE2.OrderCount,0)
FROM TABLE1
INNER JOIN TABLE2 ON TABLE2.ClientID = TABLE1.CLIENTID

表1を見ると、次のことがわかります。

ClientID        OrderCount
1               2
2               NULL
3               4
4               6

それで、「もちろん、使うべきではNULLIFなく、使うべきだ」と思いISNULL、逆にしました。同じ結果。

私はここで何が間違っているのですか?NULL列にaではなく0を取得するにはどうすればよいですか?

4

3 に答える 3

6

LEFT JOINではなくが必要ですINNER JOIN。一致するレコードがないレコードはClientID、クエリによって変更されていません。

于 2012-03-27T21:38:05.727 に答える
2

INNER JOINを使用していますが、table2にクライアントID 2がないため、結果セットに2の行が含まれません。LEFTJOINに置き換えてください。

于 2012-03-27T21:39:32.813 に答える
0

結合はおそらく行を除外しています。

于 2012-03-27T21:39:19.843 に答える