【问题标题】:Update a "main" table from an "update" table while ignoring nulls, blanks, or empty fields从“更新”表更新“主”表,同时忽略空值、空白或空字段
【发布时间】:2020-10-25 08:11:57
【问题描述】:

我有一个主表,我正在尝试从只填充了需要在主表中更新的字段的表中进行更新,并使用唯一 ID 来确保我只更新匹配的记录。查询的 SQL 字符串如下所示:

UPDATE [tblMain] INNER JOIN tblUpdate ON tblMain.UUID = tblUpdate.UUID
SET tblMain.contractName = tblUpdate.contractName
WHERE ((tblUpdate.contractName) IS NOT NULL);

这个想法是只从更新表中提取实际有数据的字段,而忽略 NULL、空白或空的字段。需要明确的是,我想在 tbleUpdate 中包含所有记录,但只更新包含数据的字段。我该怎么做?

【问题讨论】:

    标签: sql ms-access


    【解决方案1】:

    如果你想在 MS Access 中从另一个表更新一个表,你应该这样做

    UPDATE tblMain, tblUpdate 
    SET tblMain.contractName = tblUpdate.contractName
    WHERE tblMain.UUID = tblUpdate.UUID
      AND tblUpdate.contractName IS NOT NULL
    

    【讨论】:

    • 这是有道理的。抱歉,如果这种情况发生了变化,那就稍微回答一下,但我有多个列正在尝试更新。我不认为添加具有更多 AND 的列是正确的方法,是吗?
    • 我可以在 SET 中使用 IS NOT NULL 来只允许字段不为空的更改吗?
    • 接受为部分答案。目前,我为每个字段创建了单独的更新查询,并根据需要更新的内容通过 VBA 调用它们。感谢您的宝贵时间。
    最近更新 更多