嗨,我用这个命令左键连接一个表和另一个表,这个表有更多的记录,但是它一直打印空值。我希望空值变成0。
SELECT * FROM TABLE1
Left JOIN Table2 ON TABLE1.ID=Table2.IDRel
UPDATE Table2 SET IDRel = 0 where IDRel = NULL
最佳答案
不需要更新。
正如您所说的表2has a little more records
这是这里的关键,这意味着对于表1中没有匹配的IDRel
值的任何行,列(IDRel
)都将保持NULL
。
例如,现在可以使用ISNULL(IDRel, 0)
将空值替换为0,但是使用INNER JOIN
而不是LEFT JOIN
可能会得到正确的结果,从而抛出所有无法匹配的行…
然而。。。如果您真的要更新该列,那么只有与NULL
(即IS
而不是=
)进行正确的比较,这意味着将更新查询更改为:UPDATE Table2 SET IDRel = 0 where IDRel IS NULL