SQL Server - ISNULL无法处理Update Query

mik*_*sey 0 sql-server isnull

我想要一个0,而不是列中的NULL.

给出以下两个表:

TABLE1
ClientID        OrderCount
1               NULL
2               NULL
3               NULL
4               NULL


Table2
ClientID        OrderCount
1               2
3               4
4               6
Run Code Online (Sandbox Code Playgroud)

注意:两个表中的OrderCount列都是INT数据类型.

UPDATE TABLE1
SET OrderCount = ISNULL(TABLE2.OrderCount,0)
FROM TABLE1
INNER JOIN TABLE2 ON TABLE2.ClientID = TABLE1.CLIENTID
Run Code Online (Sandbox Code Playgroud)

当我看到table1时,我看到了这个:

ClientID        OrderCount
1               2
2               NULL
3               4
4               6
Run Code Online (Sandbox Code Playgroud)

所以,我心想 - "显然,我应该使用NULLIF而不是ISNULL",所以我改变了它们.结果相同.

我在这做错了什么?如何NULL在列中获得0而不是a ?

mel*_*okb 6

你需要一个LEFT JOIN而不是一个INNER JOIN.ClientID您的查询甚至没有触及没有匹配的记录.