将空/空字段转换为其他字段的值
问题描述:
在MS Access 2010数据库中,SomeTable
有两个字段,分别名为Field1
和Field2
。实际数据始终包含Field1
的值,但Field2
通常缺少值。 Field1
和Field2
都有文本数据类型。将空/空字段转换为其他字段的值
需要什么具体的语法的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;
由于您的Access版本是2010,您可以在ACCDB格式数据库中使用数据宏,以便随时更新* Field2 *,而无需使用SQL进行更新。但是,如果您担心这个问题,您的数据库将无法在Access 2007中使用。 – HansUp 2015-03-24 23:48:20