sql - 将第 1 列中的子字符串中的文本替换为第 2 列中的字符串

标签 sql database t-sql

我正在用 T-SQL 编写一些脚本并设法获得这种格式的表

ID  | Column 1            | Column 2
1   | 451151,abcabc,uibc  | abcabc

我基本上喜欢将出现在第 1 列中任何位置的第 2 列中的字符串实例替换为第 2 列中但包含在语音标记中的字符串。

所以输出看起来像

ID  | Column 1              | Column 2
1   | 451151,"abcabc",uibc  | abcabc

最佳答案

如果您需要搜索并替换逗号之间的全字,请尝试这样的操作(否则 Replce(column1, column2) 函数就足够了):

Fiddle Demo:

update yourTable
set column1 = substring(       
        replace(',' + column1 + ',', ',' + column2 + ',', ',"' + column2 + '",'),
        2,len(column1)+2 );
where column2 is not null

结果:

| ID |              COLUMN1 | COLUMN2 |
|----|----------------------|---------|
|  1 | 451151,"abcabc",uibc |  abcabc |
|  2 |    123456,wxyz,mnop, |      yz | --NOTE: yz not replaced as it is not a full word between commas

关于sql - 将第 1 列中的子字符串中的文本替换为第 2 列中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19385599/

相关文章:

sql - 删除作为另一个表的外键的主键行

SQL - 将列数据从一个表添加到另一个表,同时保留原始数据

python - 使用python将数据插入mongodb

mysql - 如何优化count和group by子查询操作

sql - cte 的对象名称无效

sql - 查看任何定义、查看服务器状态的风险

sql - MySql 使用 Sum 连接

python - postgres 的转义输入数据

sql - 连接表时出现问题

MySQL:如何使用 LEFT JOIN 对行进行编号