【问题标题】:Converting null/empty fields to the value from another field将空/空字段转换为另一个字段的值
【发布时间】:2015-03-24 23:07:11
【问题描述】:

在 MS Access 2010 数据库中,SomeTable 有两个名为 Field1Field2 的字段。实际数据始终包含Field1 的值,但经常缺少Field2 的值。 Field1Field2 都具有文本数据类型。

SQL 语句需要什么样的特定语法:1.) 在 Field2 中查找空/空(例如 "")值,然后 2.) 将 Field1 中的值粘贴到 @987654330 @ 当且仅当Field2 为空或空?

【问题讨论】:

    标签: sql ms-access ms-access-2010


    【解决方案1】:

    如果 Field2 可能同时包含 Null 和零长度字符串 (''),并且您希望对这两种情况进行相同处理,请​​使用表达式 Len(Field2 & '') = 0 定位它们。

    然后,您可以在SELECT 查询中将其用作IIf() 表达式中的条件:

    SELECT IIf(Len(Field2 & '') = 0, Field1, Field2)
    

    或者对于UPDATE 查询,只需将其放在WHERE 子句中即可:

    UPDATE SomeTable
    SET Field2 = Field1
    WHERE Len(Field2 & '') = 0;
    

    【讨论】:

    • 由于您的 Access 版本是 2010,您可以使用 ACCDB 格式数据库中的数据宏来根据需要保持 Field2 更新,而无需使用 SQL。但是,如果这是一个问题,您的数据库将无法在 Access 2007 中使用。
    【解决方案2】:

    在选择查询中,您将使用nz() 函数:

    select nz(field2, field1)
    

    您也可以在更新中使用此功能,但您不需要它:

    update table t
        set field2 = field1
        where field2 is null;
    

    【讨论】:

      猜你喜欢
      • 2021-12-10
      • 2018-09-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多