如何在SQL中的字符串之间插入字符

时间:2018-02-02 01:48:54

标签: sql sql-server insert character

我在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

有人可以帮忙。 感谢

3 个答案:

答案 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\%'