2016-07-26 52 views
0

在我的表varchar列其中有像一些数据:我如何更换从列值特定字符串在SQL Server

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

我想更换#3XX像在C#或JavaScript正则表达式的语法。

如何在SQL Server中实现?

+0

你能显示样本输出吗? – TheGameiswar

+0

只是用'loream ipsum aaabbbcc'代替空白字符串代码#REPLACE(StringValue,'#3XX','') –

+0

它总是第4个字符吗? –

回答

1

您可以使用子如果它始终是前4个字符..

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

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

您可以使用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 
1

删除它,使用此query.Since要删除字符串的长度总是4

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

但只运行一次,因为它是UPDATE查询

对于MySQL,你必须使用这样的长度()函数,

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

OP的要点是他们不知道它是什么字符串。这是一种模式,而不是一个固定的字符串。 –

+0

不确定'替换'函数是否是一个不错的选择,因为要替换的字符串是动态的。 –

+0

哦,我明白了,我会更新答案 –

1

如果有可能SPL通过空间它的字符串,然后按照下面一个

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

在这其中,你不需要任何默认长度或默认替换文本。

相关问题