sql 替換字符串


方法一:varchar和nvarchar類型是支持replace,所以如果你的text不超過8000可以先轉換成前面兩種類型再使用replace 替換 text ntext 數據類型字段的語句 。

1
update  表名  set  字段名= replace ( cast (與前面一樣的字段名  as  varchar (8000)) , '原本內容' , '想要替換成什么' )

方法二:

1
update  [表名]  set  字段名 =  replace (與前面一樣的字段名, '原本內容' , '想要替換成什么' )

方法三(此方法既可用於刪除某一列字段中的某部分字符,也可用於替換某一列字段中的某部分字符)

update Table_Name 
set Column_Name=replace(Column_Name,substring(Column_Name,Start,Length),'Replace_Content')

--Start 是要替換的字符開始的位置
--Lenght 要替換字符的長度

  注:與stuff函數的不同

  1、作用

  stuff函數用於刪除指定長度的字符,並在指定的起點處插入另一組字符。

  2、語法

  STUFF ( character_expression , start , length ,character_expression )

  3、示例

  以下示例在第一個字符串 abcdef 中刪除從第 2 個位置(字符 b)開始的三個字符,然后在刪除的起始位  置插入第二個字符串,從而創建並返回一個字符串

  SELECT STUFF('abcdef', 2, 3, 'ijklmn') GO

  下面是結果集

  aijklmnef

  4、參數 character_expression

  一個字符數據表達式。character_expression 可以是常量、變量,也可以是字符列或二進制數據列。

  start

  一個整數值,指定刪除和插入的開始位置。如果 start 或 length 為負,則返回空字符串。如果 start 比第一個 character_expression長,則返回空字符串。start 可以是 bigint 類型。

  length

  一個整數,指定要刪除的字符數。如果 length 比第一個 character_expression長,則最多刪除到最后一個 character_expression 中的最后一個字符。length 可以是 bigint 類型。

  5、返回類型 如果 character_expression 是受支持的字符數據類型,則返回字符數據。如果 character_expression 是一個受支持的 binary 數據類型,則返回二進制數據。

  6、備注 如果結果值大於返回類型支持的最大值,則產生錯誤。

  上述內容摘自http://www.cnblogs.com/345563452/archive/2009/10/29/1592048.html,侵刪

 

  stuff函數用於刪除指定長度的某個字符,而我剛剛寫的語句則可以用來刪除某列中字段的某一部分,只需把Replace_Content設為空即可

 

方法四:

update Table_Name 
set Column_Name=replace(Column_Name,'Content','Replace_Content')


這段語句就可以用來代替某個特定的字符,用Replace_Content代替Content。

 

start 可用charindex函數。

如:查找字符串中“你好”的位置

執行:

1
select  charindex( '你好' , '2432你好dsfasdf' )

結果:

結論:“你好”中的“你”的起始位置是5,所以這樣就能判斷出指定字符的位置了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM