您好我正在使用此命令将另一个表连接到一个表,该表具有更多记录但仍保持打印NULL。我希望NULL变为0。
SELECT * FROM TABLE1
Left JOIN Table2 ON TABLE1.ID=Table2.IDRel
UPDATE Table2 SET IDRel = 0 where IDRel = NULL
答案 0 :(得分:4)
不应该需要更新。
正如您所说的那样,Table2 has a little more records
是关键,这意味着对于Table1中没有找到匹配IDRel
值的任何行,{(1}})列将保留{{1 }}
现在你可以使用IDRel
将空值替换为0,但是NULL
代替ISNULL(IDRel, 0)
可能会得到正确的结果,抛弃所有不能的行匹配...
但是......如果你确实要更新该列,只有在对INNER JOIN
(LEFT JOIN
而不是NULL
)进行正确比较时才会更新该列,这意味着要改变您的更新查询到:
IS
答案 1 :(得分:2)
即使需要更新吗?
SELECT T1.*, coalesce(t2.IDREL,0) as IDREL
FROM TABLE1 T1
Left JOIN Table2 ON TABLE1.ID=Table2.IDRel
答案 2 :(得分:0)
使用此查询
UPDATE Table2 SET IDRel = 0 where IDRel is NULL
答案 3 :(得分:0)
使用IS NUll
SELECT * FROM TABLE1
Left JOIN Table2 ON TABLE1.ID=Table2.IDRel
UPDATE Table2 SET IDRel = 0 where IDRel IS NULL