簡體   English   中英

如何從SQL Server中的列值替換特定的字符串

[英]How to replace specific string from column value in SQL Server

我的表中有varchar列,其中包含一些數據,例如:

"#306 loream ipsum aaabbbqqqcc"
"#302 loream ipsum aaabbbceefec"
"#330 loream ipsum aaabbbccsds"

我想替換#3XX例如C#或JavaScript中的regex語法。

如何在SQL Server中實現呢?

您可以使用STUFF函數來實現此目的。

Declare @String Varchar(100) = '#306 loream ipsum aaabbbqqqcc'

SELECT STUFF(@String , 1,5,'')

Result: loream ipsum aaabbbqqqcc

您可以使用RIGHT函數來實現此目的。

Declare @String Varchar(100) = '#306 loream ipsum aaabbbqqqcc'

SELECT RIGHT(@String , LEN(@String) - 5)

RESULT:  loream ipsum aaabbbqqqcc

如果子字符串始終是前4個字符,則可以使用。

declare @str varchar(max)
set 
@str='#306 loream ipsum aaabbbqqqcc'

select substring(@str,5,len(@str))

要刪除它,請使用此查詢。由於要刪除的字符串的長度始終為4。

     UPDATE table-name SET column-name = RIGHT(column-name, LEN(column-name) - 4)

但是只運行一次,因為它是UPDATE查詢

對於MySql,您必須使用length()函數,

     UPDATE table-name SET column-name = RIGHT(column-name, LENGTH(column-name) - 4)

如果可以按空格分割字符串,則按照下面的一個

Declare @str Varchar(100) = '#306 loream ipsum aaabbbqqqcc'
set @str =substring( @str ,CHARINDEX(' ', @str) , len(@str) - CHARINDEX(' ', @str)+1)

在此代碼中,您不需要任何默認長度或默認替換文本。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM