2016-11-21 5 views
0

SQL更新を行い、 "\"を含む文字を削除したい。完全なテーブル更新の最後の文字の後に文字列を保持する

私はSQLリバースを発見し、

SELECT RIGHT(@str, CHARINDEX('.', REVERSE(@str)) - 1) 

または

SELECT RIGHT(@str, CHARINDEX('\', '\' + REVERSE(@str)) - 1) 

を示唆しているanother questionからのコードを見ては、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 \ folder \ folder2 \ folder3 \ folders4 \ filename.pdfはfilename.pdfになります。 – indofraiser

+0

これは一括アップロードのためのものです。ありがたいことに私たちは通常、XMLのインポートと整理ができます急いで。 – indofraiser

答えて

1

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 
); 
関連する問題