微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决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 举报,一经查实,本站将立刻删除。