将第1列中的子字符串中的Text替换为第2列中的字符串

时间:2013-10-15 15:49:43

标签: sql database tsql

我在T-SQL中编写了一些脚本并设法以这种格式获取表格

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

我基本上喜欢替换第2列中出现在第1列中任何位置的字符串的任何实例,第2列中的字符串用语音标记括起来。

所以输出看起来像

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

2 个答案:

答案 0 :(得分:2)

如果你需要搜索并替换逗号之间的全字,请尝试这样的事情(否则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

答案 1 :(得分:0)

未经测试,但您可以尝试一下吗?

UPDATE mytable SET column1 = REPLACE(column1,column2,'"' + column2 + "'")