繁体   English   中英

使用通配符替换字符串

[英]Replace string using wildcards

MS SQL

有一个包含诸如“ SeqXXXX:hello world”之类的数据的表

XXXX当然是递增的数字。

我想将它们替换为空白。 有没有一种方法可以在更新语句中用空白替换右边的'Seq'+ 4?

尝试这个:

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'

这将改变

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]%'

您也可以将替换功能与Patindex配合使用以修剪数字。

http://msdn.microsoft.com/zh-CN/library/ms188395.aspx

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM