我有一个表(大约 160k 行(,其中有一个名为 path 的列。 在该列中,有如下路径:
"\ab.localfolder1folder2folder3folder_x"
"\ab.localfolderA"
路径的长度不同。
我想做的是只将 .local in 之前的"ab"替换为"cd",其余部分保持不变。
我被告知使用替换功能,但不知何故,我没有让它按照我想要的方式工作。
我正在寻找正确的语法来执行此操作。
Declare @oldval as varchar(30) = '\ab.local' ;
Declare @newval as varchar(30) = '\cd.local' ;
update yourtable set yourfield = replace(yourfield,@oldval ,@newval) where yourfield like @oldval + '%'
已解决参考:https://stackoverflow.com/a/814551/6923146
希望它非常适合您的解决方案
UPDATE my_table
SET columnName = replace(columnName, 'oldstring', 'newstring')
WHERE columnName like '%oldstring%'
例如:
UPDATE my_table
SET columnName = replace(columnName, 'ab.', 'ab.')
WHERE columnName like '%ab.%'
如果要替换的零件位于固定位置,长度固定,则可以使用STUFF
,如下所示:
UPDATE yourTable SET paths = STUFF(paths, 3, 2, 'cd')
这会将paths
位置 3 开始的两个字符替换为cd