2013-05-14 30 views
0

到表新舊系統數據相結合。由於我有這樣的數據列表:自加入表/更新在同一個表中的數據

Work no Work name 
========= ========= 
123456  James 
123456  James, (123456) 

我想更新爲:

Work_no Work_name 
========= ========= 
123456  James 
123456  James 

我試着構建一個更新語句,對它不太自信,所以將它作爲等價的select語句來查看返回的內容,它似乎在無限循環中運行(有大約200k條記錄,當我停止它在2百萬返回某處!),雖然它在開始時返回看起來很好它是理所當然的Ť似乎複製或東西:

UPDATE c1 
set c1.Work_name = c.Work_name 
FROM table c1 
INNER JOIN table c ON c1.Work_no = c.Work_no 
where charindex(',',c1.Work_name) > 0 

只得到了經驗做最簡單的更新語句 - 有點堅持這一個,如果任何人都可以建議我在做什麼錯誤,改正它最好的方法?

感謝

安德魯

+0

您能否提供一些來自您獲取記錄以更新數據的示例數據? – ankurtr 2013-05-19 17:01:13

回答

0

你有建於work_no的指數? 您是否嘗試過:

UPDATE #table set Work_name = (select top 1 c.Work_name FROM #table c where #table.Work_no = c.Work_no and charindex(',',c.Work_name) = 0) where charindex(',',c.Work_name) > 0 
相關問題