我有一个满了重复文件路径的列:
\\C:\298788\DOC1\SUB1\\\C:\298788\DOC1\SUB1\FILE.txt
\\C:\298788\DOC1\SUB1\\\C:\298788\DOC1\SUB1\FILE.txt
\\C:\298788\DOC1\SUB1\\\C:\298788\DOC1\SUB1\FILE.txt
我只需要字符串的第二部分即。 C:\298788\DOC1\SUB1\FILE.txt
如何在没有任何东西的情况下更换三重反斜杠。我试过了:
UPDATE [TABLE].[dbo].[ColumnName]
SET [ColumnName] = REPLACE([ColumnName], '%\\\', '');
它表示所有行都已更新,但没有任何变化。假设它与反斜杠有关。
使用SQL SERVER 2012。
答案 0 :(得分:1)
使用stuff()
select col = stuff(col,1,charindex('\\\',col,2)+2,'')
from tbl
rextester演示:http://rextester.com/QRKWP8606
返回:
+------------------------------+
| col |
+------------------------------+
| C:\298788\DOC1\SUB1\FILE.txt |
| C:\298788\DOC1\SUB1\FILE.txt |
| C:\298788\DOC1\SUB1\FILE.txt |
+------------------------------+
作为update
:
update tbl
set col = stuff(col,1,charindex('\\\',col,2)+2,'')
where charindex('\\\',col,2)>0