我想将AttachmentCopyLoc
列的字符串从D:\IT\Public\FTX_RobotAlerts\336
更改为V:\IT\Public\FTX_RobotAlerts\336
,此处只更改为D到V,其余字符串相同(我不会发生事件)想要改变它。)
我该怎么做?
提前感谢您的帮助。
答案 0 :(得分:2)
确切的语法取决于平台,但它类似于
UPDATE {table}
SET AttachmentCopyLoc = REPLACE ( AttachmentCopyLoc , 'D:' , 'V:' )
WHERE AttachmentCopyLoc LIKE 'D:%'
答案 1 :(得分:1)
在SQL Server中,我建议使用stuff()
:
update t
set AttachmentCopyLoc = stuff(AttachmentCopyLoc, 1, 1, 'V')
where AttachmentCopyLoc like 'D:%';
此版本有两个优点:
STUFF()
可确保仅替换第一次出现的'D:'
。不可否认,这个子字符串不太可能在列中出现多次,但为什么要冒这个机会?LIKE
的使用允许使用AttachmentCopyLoc
上的索引(如果有的话)并且使用hte索引是合适的。答案 2 :(得分:0)
另一种方式是基本字符串操作
UPDATE {table}
SET AttachmentCopyLoc ='V' + substring(AttachmentCopyLoc,2,len(AttachmentCopyLoc ))
where AttachmentCopyLoc like 'D%'
答案 3 :(得分:0)
这只会改变字符串的第一个字母:
update <tablename>
set AttachmentCopyLoc = 'V'+substring(AttachmentCopyLoc,2,len(AttachmentCopyLoc)-1)