嗨,我用这个命令左键连接一个表和另一个表,这个表有更多的记录,但是它一直打印空值。我希望空值变成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

07-24 09:27