sql - 用于搜索和替换特定前缀字符串的 Sql 查询?

标签 sql sql-server-2005 string replace

好吧,我有这样的东西(我搞砸了......) -

Id Name                     City
1  XXX - New                Plano
2  XXX - XXX - New1         Dallas
3  XXX - XXX - XXX - New2   Sacramento
4  XXX - New3               Houston
5  XXX - XXX - New4         Austin

因此,我想用多个 XXX 前缀替换所有出现的内容,将其替换为 1。例如 id 2 应该具有 Name=XXX - New2。如何实现这一目标?我认为,即使是基本上检查前缀并将其替换为名称的查询也可以工作,然后我可以再次添加前缀吗?我的意思是设置所有记录只是说 NewNew2.. 等等...然后我可以向其添加 XXX 前缀?

最佳答案

您可以使用字符串 replace 删除“XXX - ”的所有实例功能。

UPDATE tableName
SET Name = Replace(Name, 'XXX - ', '')

或者,要保留单个实例,您可以使用:

UPDATE tableName
SET Name = 'XXX - ' + Replace(Name, 'XXX - ', '')
WHERE CHARINDEX('XXX - ', Name) > 0

关于sql - 用于搜索和替换特定前缀字符串的 Sql 查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4831795/

相关文章:

python - 创建新列 PySpark SQL - Python

sql-server - 在 SQL Server 中,如何将数据插入到只有一列标识类型的表中?

sql - 为什么我的 SQL Server 游标非常慢?

sql-server - MSSQL - 如何在批量插入中设置默认值?

c# - Perl 的重复运算符在 C# 中的等效项是什么?

java - 使用每个元素之间的空格数分割行

java - 以编程方式缩短 URL 字符串

SQL 嵌套数据运行总计直至达到值

sql - mysql 重复记录字段

python - Django INNER JOIN 使用带有 WHERE 子句的外键