Where 子句中的 OR 运算符不起作用

问题描述

我正在使用 where 子句进行更新。在 where 子句中,我使用 OR 条件来涵盖这两种情况。以下是我的代码

UPDATE 
    table1
SET
    id = table2.id
FROM table2
where (cast(table2.number as bigint) = table1.number) 
OR (table2.identifier = table1.identifier)

如果我在 2 个不同的更新语句中执行更新,它会起作用。但是,如果我尝试在 WHERE 子句中使用 OR 来执行它,它会永远运行。我应该提到的一件事是我在数字字段和标识符字段的表中都有多个空值。但是这两种情况都涵盖了我需要更新的总 ID,因为标识符为空的行有可用的编号,而编号为空的行则有标识符可用。有什么我在这里遗漏的吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)