将null / empty字段转换为另一个字段的值

时间:2015-03-24 23:07:11

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

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

SQL语句需要什么特定语法,以便1.)在Field2中查找null / empty(例如"")值然后2.)粘贴当且仅当Field1为空或为空时,Field2的值为Field2

2 个答案:

答案 0 :(得分:3)

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

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

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

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

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

答案 1 :(得分:2)

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

select nz(field2, field1)

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

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