在MS Access 2010數據庫中,SomeTable
有兩個字段,分別名爲Field1
和Field2
。實際數據始終包含Field1
的值,但Field2
通常缺少值。 Field1
和Field2
都有文本數據類型。將空/空字段轉換爲其他字段的值
需要什麼具體的語法的SQL語句會1)尋找空/空(如「」)值Field2
,然後2)粘貼Field1
價值爲Field2
當且僅當Field2
是是空還是空?
在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