将空/空字段转换为其他字段的值

问题描述:

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

需要什么具体的语法的SQL语句会1)寻找空/空(如“”)值Field2,然后2)粘贴Field1价值为Field2当且仅当Field2是是空还是空?

在选择查询,你可以使用nz()功能:

select nz(field2, field1) 

您可以在更新使用此功能为好,但你不会需要它:

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

如果字段2可能同时包含空字符串和零长度字符串(''),并且您希望这两种情况的处理方式相同,请使用表达式Len(Field2 & '') = 0将它们作为目标。

然后,您可以使用它作为条件的IIf()表达在SELECT查询:

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

或为UPDATE查询,只要把它的WHERE子句中:

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

由于您的Access版本是2010,您可以在ACCDB格式数据库中使用数据宏,以便随时更新* Field2 *,而无需使用SQL进行更新。但是,如果您担心这个问题,您的数据库将无法在Access 2007中使用。 – HansUp 2015-03-24 23:48:20