使用通配符替换字符串

时间:2014-06-02 13:13:52

标签: sql sql-server

MS SQL

有一个包含' SeqXXXX:hello world'

等数据的表格

XXXX当然是递增的数字。

我想用空白替换那些。有没有办法取代' Seq'右边+ 4,更新声明中有空白?

3 个答案:

答案 0 :(得分:2)

试试这个:

UPDATE YourTable
SET YourColumn = 'Seq'
WHERE LEN(YourColumn) = 7 AND
      PATINDEX('%[0-9]%',RIGHT(YourColumn,4)) = 1 AND 
      LEFT(YourColumn, 3) = 'Seq'

根据您的评论,将其更改为

UPDATE YourTable
SET YourColumn = SUBSTRING(YourColumn, 8, LEN(YourColumn))
WHERE PATINDEX('%[0-9]%',RIGHT(LEFT(YourColumn, 7),4)) = 1 AND 
      LEFT(YourColumn, 3) = 'Seq'

答案 1 :(得分:1)

这会改变

Seq1234: hello world 

: hello world 

-

UPDATE yourtable
SET yourcolumn = stuff(yourcolumn, 1,7,'')
WHERE yourcolumn like 'seq[0-9][0-9][0-9][0-9]%'

答案 2 :(得分:0)

您还可以使用替换功能与Patindex修剪数字。

http://msdn.microsoft.com/en-IN/library/ms188395.aspx