2016-11-21 112 views
0

我想執行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 '%\%' 
+0

多少斜槓可以在你的字符串?你能顯示樣本數據嗎? –

+0

哦,我認爲目前他們將是URL的記錄是10,但它們是公司的外部URL,我們只需要一個本地文件名。即http:\\ www.bbc.co.uk \文件夾\ folder2 \ folder3 \ folders4 \ filename.pdf將成爲filename.pdf – indofraiser

+0

我應該說這只是批量上傳,謝天謝地,我們通常會有XML導入並且可以整理在飛行中。 – indofraiser

回答

1

使用CHARINDEXRIGHT

查詢

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 
); 
相關問題