2013-02-15 49 views
1

我需要更新SQL Server中字符串的一部分。在SQL Server中更新字符串的一部分

我:

ID IDCityVisited Names      
1 10    Julya,Matheus,Donovan  
2 15    Mary,Donovan,Richard 
3 20    John,Bob,Andy 

我需要更新Names列只DonovanPaul改變和維持所有剩餘的字符串,因爲它是。

謝謝

+0

這有[已被問](http://stackoverflow.com/questions/4856089/how-to-update-a-part-of-the-string-using-replace-function-in-tsql),應該參考Google和MSDN可以很容易地回答你自己。你嘗試了什麼,你的困難究竟是什麼? – Pondlife 2013-02-15 17:10:12

回答

4

全文索引作爲@Pondlife點我,這工作:

UPDATE myTable 
SET Names= REPLACE(Names, 'Donovan', 'Paul') 
WHERE Names LIKE '%Donovan%' 

謝謝全部

2

我認爲你需要採取SQL服務器開始上課很嚴重。

這就是你想要做的。一個簡單的替換函數將適用於你的問題。

該查詢將過濾Id = 2的記錄,然後替換函數將用Paul替換Donovan。

Update TableName 
set Names = replace(Names,'Donovan','Paul') 
where Id = 2 
+0

感謝您的回覆,但SQL Server不是我的焦點。這就是我來這裏問的原因。而你所填寫的Id = 2並不能滿足我的要求。作爲Pondlife點我,這應該是: UPDATE myTable的 集名稱= REPLACE(名稱, '多諾萬', '保羅') WHERE反正 – Khrys 2013-02-15 17:21:14

2
UPDATE table SET names = REPLACE(names,'Donovan','Paul') 
4

你需要更新你的表

UPDATE tblName 
SET Names = REPLACE(Names,'Donovan','Paul') 
2

試試這個:

UPDATE 
Tbl 
SET Names = REPLACE(Names, 'Donovan','Paul') 
WHERE PATINDEX('% Donovan %', Names) != 0 

REPLACE (Transact-SQL)

PATINDEX (Transact-SQL)

或此,如果你有Names

UPDATE 
Tbl 
SET Names = REPLACE(Names, 'Donovan','Paul') 
WHERE CONTAINS(Names, 'Donovan') 

CONTAINS (Transact-SQL)

+0

@Why包含,他並沒有指定名稱LIKE '%多諾萬%' 謝謝全文搜索這裏。 – 2013-02-15 17:10:27