更新/替换为子字符串 - 三个反斜杠



我有一列充满了重复的文件路径:

\C:298788DOC1SUB1\C:298788DOC1SUB1FILE.txt
\C:298788DOC1SUB1\C:298788DOC1SUB1FILE.txt
\C:298788DOC1SUB1\C:298788DOC1SUB1FILE.txt

我只需要字符串的第二部分,即。 C:298788DOC1SUB1FILE.txt

如何用什么替换到三个反斜杠。我试过:

UPDATE [TABLE].[dbo].[ColumnName]
SET [ColumnName] = REPLACE([ColumnName], '%\', '');

它说所有行都已更新,但没有任何变化。假设它与反斜杠有关。

使用 SQL SERVER 2012。

使用 stuff()

select col = stuff(col,1,charindex('\',col,2)+2,'')
from tbl

Rextester演示:http://rextester.com/QRKWP8606

返回:

+------------------------------+
|             col              |
+------------------------------+
| C:298788DOC1SUB1FILE.txt |
| C:298788DOC1SUB1FILE.txt |
| C:298788DOC1SUB1FILE.txt |
+------------------------------+

作为update

update tbl
  set col = stuff(col,1,charindex('\',col,2)+2,'')
where charindex('\',col,2)>0

最新更新