2011-01-31 21 views
15

嗨 我有一列nvarchar(1000)類型。我需要擺脫該列中的編碼字符,並用它們的特殊字符替換它們。 例如:如何在tsql中使用replace函數更新字符串的一部分?

column value is : 'This text values contains this '&' this'. 

我不得不更換'&'與 '&'。

  1. 首先要找到其中列有'&'記錄(可使用類似條件)
  2. 然後用它的特殊字符替換隻有這個詞

我該怎麼做呢? PL。幫助

回答

30

這將在整列

REPLACE(MyColumn, '&', '&') 

你必須巢其他替代品取代...

REPLACE(REPLACE(MyColumn, '&', '&'), '>', '>') 

總之

UPDATE myTable 
SET MyColumn = REPLACE(MyColumn, '&', '&') 
WHERE MyColumn LIKE '%&%' 
+0

@gbn:用update語句? – User13839404 2011-01-31 21:09:31

+0

@Jango:對不起,只是看到了字符串替換問題 – gbn 2011-01-31 21:12:19

1
Update TABLE 
Set field = replace(field, '&', '&'); 
8
UPDATE mytable 
    SET mycol = REPLACE(mycol, N'&', N'&') 
    WHERE mycol LIKE '%&%' 

編輯 如果您決定一次性替換多個html實體,替換順序可能會改變結果。

例如:

< 

如果更換第一&amp;&,然後用<&lt;,但結果將是&lt;,如果你第一次嘗試更換&lt;<,然後用&&amp;變得&<

如果我必須做那種替換,我通常會替換&amp;最後因爲這個原因。當然,邊緣的情況下,並沒有什麼這經常發生,但你永遠不知道...

5

通用語法:

UPDATE Table_Name 
SET Column_Name = REPLACE(Column_Name, 'Text_To_Be_Replaced', 'New_Text') 
WHERE Column_Name LIKE '%Text_To_Be_Replaced%' 
相關問題