web-dev-qa-db-ja.com

文字列を分割して最後の要素を取得

私はこの値を持つテーブルを持っています:

Articles/Search/ArtMID/2681/ArticleID/2218/Diet.aspx
OurStory/MeettheFoodieandtheMD.aspx
TheFood/OurMenu.aspx

これを手に入れたい

Diet.aspx
MeettheFoodieandtheMD.aspx
OurMenu.aspx

これどうやってするの?

30
Antonio Papa

SQLでそれを行う方法:

SELECT SUBSTRING( string , LEN(string) -  CHARINDEX('/',REVERSE(string)) + 2  , LEN(string)  ) FROM SAMPLE;

JSFiddle here http://sqlfiddle.com/#!3/41ead/11

46
jazzytomato
SELECT REVERSE(LEFT(REVERSE(columnName), CHARINDEX('/', REVERSE(columnName)) - 1))
FROM   tableName

他のソース

10
John Woo

してみてください:

select url,(CASE WHEN CHARINDEX('/', url, 1)=0 THEN url ELSE RIGHT(url, CHARINDEX('/', REVERSE(url)) - 1) END)
from(
    select 'Articles/Search/ArtMID/2681/ArticleID/2218/Diet.aspx' as url union
    select 'OurStory/MeettheFoodieandtheMD.aspx' as url union
    select 'MeettheFoodieandtheMD.aspx' as url
)xx
5
TechDo

以下のコードを試してください:

SELECT SUBSTRING( attachment, LEN(attachment) 
     - CHARINDEX('/', REVERSE(attachment)) + 2, LEN(attachment)  ) AS filename 
FROM filestable;
1
shubham

単一文字のトークン(D)および単一のトークン(Diet.aspx

SELECT SUBSTRING( string , LEN(string) -  CHARINDEX('/','/'+REVERSE(string)) + 2  , LEN(string)  ) FROM SAMPLE;
0
langus

これを試して。簡単です。

SELECT RIGHT(string、CHARINDEX( '/'、REVERSE(string))-1)FROM TableName

0
Max