SQL Server 在特定列的所有行中查找和替换特定单词

Posted

技术标签:

【中文标题】SQL Server 在特定列的所有行中查找和替换特定单词【英文标题】:SQL Server find and replace specific word in all rows of specific column 【发布时间】:2012-11-23 06:20:36 【问题描述】:

我有一个表 TblKit,其中包含 IdNumber 列。 Idprimary key 类型的 intNumbervarchar(50)

表格中的数据如下所示:

Id     Number
---    ------
1      KIT001
2      KIT002 
3      DMB001
4      DM002
5      KIT003

我想在 Number 字段中将 KIT% 的所有行替换为 CH。所需的输出如下所示:

Id     Number
---    ------
1      CH001
2      CH002 
3      DMB001
4      DM002
5      CH003

我已经尝试过这个更新查询:

UPDATE TblKit SET Number = REPLACE(Number, N'%KIT%', 'CH') 

但它不起作用。

谁能帮我解决这个问题?

【问题讨论】:

【参考方案1】:
UPDATE tblKit
SET number = REPLACE(number, 'KIT', 'CH')
WHERE number like 'KIT%'
SQLFiddle Demo

如果您确定没有类似 CKIT002 的值,则直接使用此方法

UPDATE tblKit
SET number = REPLACE(number, 'KIT', 'CH')
SQLFiddle Demo

【讨论】:

以上是关于SQL Server 在特定列的所有行中查找和替换特定单词的主要内容,如果未能解决你的问题,请参考以下文章

如何查询我的所有视图设计以查找 SQL Server 中的特定字符串?

如何在 SQL Server 中查找外键依赖项?

sed:查找并替换以特定字符串开头的行中的第 n 个字符

如何在 SQL Server 2008 R2 中的所有行中删除只有一个值的多列

sql server 查询 order by 与 union 并替换多个列的空值

SQL查询以查找列和行中的最大值