仅在最后一个字符更新后保留字符串
问题描述:
我想执行SQL更新并删除任何包含“\”的字符。仅在最后一个字符更新后保留字符串
我发现SQL逆向看着代码another question这表明
SELECT RIGHT(@str, CHARINDEX('.', REVERSE(@str)) - 1)
或
SELECT RIGHT(@str, CHARINDEX('\', '\' + REVERSE(@str)) - 1)
是下面做一个SQL表更新的最佳方式修改:
UPDATE [DB].dbo._tbldata
SET DOCURL = RIGHT(DOCURL, CHARINDEX('\', REVERSE('\' + DOCURL)) - 1)
并且我应该加
WHERE DOCURL LIKE '%\%'
答
使用CHARINDEX
和RIGHT
。
查询
select right(DOCURL, charindex('\', reverse(DOCURL), 1) - 1)
from [your_table_name]
where DOCURL like '%\%';
如果要更新,然后
查询
update [your_table_name]
set DOCURL = (
case when DOCURL like '%\%' then right(DOCURL, charindex('\', reverse(DOCURL), 1) - 1)
else DOCURL END
);
多少斜杠可以在你的字符串?你能显示样本数据吗? –
哦,我认为目前他们将是URL的记录是10,但它们是公司的外部URL,我们只需要一个本地文件名。即http:\\ www.bbc.co.uk \文件夹\ folder2 \ folder3 \ folders4 \ filename.pdf将成为filename.pdf – indofraiser
我应该说这只是批量上传,谢天谢地,我们通常会有XML导入并且可以整理在飞行中。 – indofraiser