繁体   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