2015-10-16 57 views
0

我有一個'user_id'列的表。在同一張表格中,我有另一個數據字段,標記爲'GMID'。在該GMID列中有一些字段爲空,那些不爲空的字段的值與該行內的user_id數據字段相匹配。有沒有辦法創建一個腳本或查詢來更新GMID列中的所有空字段,以匹配該行中user_id行中的相應數據值?我應該遵循哪些最佳實踐,採用不同的方法?預先感謝任何人,可以提供幫助。如何更新空數據字段以匹配另一列數據字段?

回答

3

當然有

UPDATE your_table 
SET GMID=user_id 
WHERE GMID IS NULL 

但是,你甚至不需要WHERE如果GMID始終應該是相同的user_id。

順便說一句,爲什麼你需要在一個表中有兩列相同的數據?

+0

謝謝!我們有一些未決的設計變更,所以我們的團隊可能會改變我們去做這件事的方法。最後,爲了回答你的問題,我們的團隊目前正在進行數據遷移,我的導師希望我更新此表中的字段以及GMID發生的其他表。所以我想這不只是一張桌子。另外,如果我想更新GMID的每個實例以匹配每個表中的user_id,是否有任何建議可以提供?對不起,如果這不明確。我仍然在學習:) ..此外,這個查詢會更新每個GMID以匹配該行中唯一對應的user_id嗎? – Jules

+0

該查詢將更新所有空的'GMID'。它會將來自'user_id'列的值從原始值放到列GMID中 – Tatiana

1

另一種方法是使用'coalesce'功能。它將返回第一個非空值。此方法不涉及您的表格中的數據更改。在查詢中,您可以'選擇coalesce(GMID,user_id)作爲GMID ...',它將返回非空的第一列。

的文檔Oracle數據庫: http://docs.oracle.com/cd/B28359_01/server.111/b28286/functions023.htm

更新:我只是顛倒了COALESCE函數裏面列的名稱...

相關問題