2017-06-11 3 views
0

こんにちは、ありがとうございました!URL列の最後の2つのスラッシュ(/)の間で値を取得するにはどうすればよいですか? SQLで

「URL」という名前の列があり、DocIDを解析する必要があります。その下の戻り値は「87」です。

http://SiteName-Domain/Announcements/Attachments/**87**/Document.DOCX 

DocIdを取得するために最後の2つのスラッシュ(/)の間の値を照会するにはどうすればよいですか?

私は最後のスラッシュの後に値を取得することができますが、ないように注意してくださいどのように最後の二つの間:ここ

Select RIGHT(ax.URL, (CHARINDEX('/',REVERSE(ax.URL),0))-1),* from  SPListItemAttachments ax 

は別の試みが近づいているが、私は何か間違ったことをやっている

SELECT SUBSTRING(URL, CHARINDEX('/', URL) 
, CHARINDEX('/',URL) - CHARINDEX('/', URL) + Len('/')) from SPListItemAttachments 
+0

はあなたには、いくつかのタグが不足していますか? –

+0

あなたのdbmsにタグを付け、あなたの試行を見せてください。 –

+0

スクリプト言語でこれを行うことは、それが新しいものであれば簡単かもしれません。 –

答えて

0

SQL Serverで以下の説明でLenとsubstrを使用しないでこのロジックを試してください

declare @mytext varchar(max) = 'http://SiteName-Domain/Announcements/Attachments/**87**/Document.DOCX' 

- exp lanation -

select charindex('/',reverse(@mytext)) -- get 1st position of/
select right(@mytext,charindex('/',reverse(@mytext))) -- get the text from right 
select replace(@mytext,right(@mytext,charindex('/',reverse(@mytext))),'') -- replace the first right text to get extract what you are after of/ 

- 効果的にあなたのスクリプト -

select right(replace(@mytext,right(@mytext,charindex('/',reverse(@mytext))),''), charindex('/',reverse(replace(@mytext,right(@mytext,charindex('/',reverse(@mytext))),'')))-1) -- then extract from the right text after/
+0

これは完璧です、ありがとうございます! – Adam

関連する問題