[英]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.