我在tbl1中有一个col1,其数据如下:
C:\ABC\1245_PQR\125\xyz\ROW20MAOSAD12\
C:\ABC\3456_ADR\515\xpo\ROWadMAOSAD23\
C:\ABC\1547_DFR\255\RDS\ROW14SDFS15\
现在我要在C:\ ABC \ 1245_PQR \ 125 \ xyz \ ROW之后和'20MAOSAD12 \'之前插入'\'
并且数据格式相同但在所有行中都会更改,例如 -
docker search mongo
有人可以帮忙。 感谢
答案 0 :(得分:2)
您可以使用替换功能
SELECT REPLACE('C:\ABC\1245_PQR\125\xyz\ROW20MAOSAD12\', '\ROW', '\ROW\')
更准确
SELECT REPLACE(col1, '\ROW', '\ROW\') from tbl1
答案 1 :(得分:0)
或者您可以考虑使用STUFF运算符:
STUFF ( character_expression , start , length , replaceWith_expression )
SELECT STUFF('C:\ABC\1245_PQR\125\xyz\ROW20MAOSAD12\',28,0, '\')
SELECT STUFF('SomeColumn',28,0, '\') FROM SomeTable WHERE SomeColumn=SomeValue
答案 2 :(得分:0)
另外,我做了一个 - 有点冗长
- 第1步 选择在col1中具有... xyz ....且col2为xyz
的所有行select * from tbl where col2 = 'row' and col1 like '%xyz%'
- 第2步 - 从上面的行中,计算col1
中的... xyz .......的起始索引select charindex('xyz', col1) from (select col1 from tbl where col2 = 'xyz' and col1 like '%xyz%') tmp
- 第3步 - 从charIndex + 3(xyz的大小)中拆分col1
select left(col1, charindex('xyz', col1) + 2 ), substring(col1, charindex('xyz', col1) + 3, LEN(col1) ), ( left(col1, charindex('xyz', col1) + 2 ) + '\' + substring(col1, charindex('xyz', col1) + 3, LEN(col1) ))
from (select col1 from tbl where name = 'xyz' and col1 like '%xyz%') tmp
- 第4步 - 更新!!
update tbl
SET col1 = ( left(col1, charindex('xyz', col1) + 2 ) + '\' + substring(col1, charindex('xyz', col1) + 3, LEN(col1) ))
where col2 = 'xyz' and col1 like '%xyz%' and col1 not like '%xyz\%'