2017-07-28 90 views
0

在我訪問2016數據庫中,我有一個表tblCustomerInfo,其字段爲customer_code。有一些舊的customer_code值需要更新爲較新的值(例如,所有包含customer_code = 103的行都應該更新爲customer_code = 122)。在訪問數據庫表中的單個查詢中執行多個更新

我可以使用下列查詢在同一時間實現這樣的事情會一個customer_code

UPDATE tblCustomerInfo set customer_code = 122 Where customer_code = 103; 
UPDATE tblCustomerInfo set customer_code = 433 Where customer_code = 106; 
... 

不過,我想,以避免運行每個customer_code一個單獨的查詢。有沒有辦法在單個查詢中更新所有代碼,每個代碼都是不同的新值?

+3

請顯示樣本數據和預期輸出。您目前的問題不能回答。 –

+0

我的表是tblCustomerInfo,我要編輯的字段是customer_code。我有101,103,106等舊代碼...高達25個數字,我需要它們分別更新122,321,433。我寫的更新代碼是 - UPDTAE tblCustomerInfo – Udesha

+0

我的訪問表是tblCustomerInfo,我要編輯的字段是customer_code。我有101,103,106等舊代碼...高達25個數字,我需要它們分別更新122,321,433。我寫的更新代碼是 - UPDTAE tblCustomerInfo set customer_code = 122 where customer_code = 103;但這僅適用於單個代碼。但我需要運行一個查詢,將所有代碼分別更改爲新代碼。謝謝。 – Udesha

回答

0

創建一個表,例如具有兩個字段oldcode和newcode的CustomerCodes,並添加所有值。然後運行一個像這樣的更新查詢:

UPDATE CustomerCodes INNER JOIN tblCustomerInfo 
ON CustomerCodes.OldCode = tblCustomerInfo.Customer_Code 
SET Customers.Customer_Code = [CustomerCodes].[NewCode]; 

替代

如果沒有太多的改變,你可以使用switch語句是這樣的:

UPDATE tblCustomerInfo 
SET Customer_Code = 
SWITCH(Customer_Code=103,126, 
Customer_Code = 106,130, 
Customer_Code = 107,133); 

還有就是,在我經驗,對交換語句中可能有的配對數量進行限制,儘管我從來沒有想過要確切地知道限制是什麼 - 它似乎沒有記錄。

相關問題