2015-03-24 141 views
1

在MS Access 2010數據庫中,SomeTable有兩個字段,分別名爲Field1Field2。實際數據始終包含Field1的值,但Field2通常缺少值。 Field1Field2都有文本數據類型。將空/空字段轉換爲其他字段的值

需要什麼具體的語法的SQL語句會1)尋找空/空(如「」)值Field2,然後2)粘貼Field1價值爲Field2當且僅當Field2是是空還是空?

回答

2

在選擇查詢,你可以使用nz()功能:

select nz(field2, field1) 

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

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

如果字段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