拆分字符串并取最后一个元素

sql sql-server url split

33788 观看

6回复

796 作者的声誉

我有一个包含这个值的表:

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

我想得到这个

Diet.aspx
MeettheFoodieandtheMD.aspx
OurMenu.aspx

我怎样才能做到这一点?

作者: Antonio Papa 的来源 发布者: 2013 年 1 月 19 日

回应 6


4

15626 作者的声誉

请试试:

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
作者: TechDo 发布者: 2013 年 1 月 19 日

10

208512 作者的声誉

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

ORHER SOURCE(s)

作者: John Woo 发布者: 2013 年 1 月 19 日

39

5289 作者的声誉

决定

在SQL中执行此操作的方法:

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

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

作者: jazzytomato 发布者: 2013 年 1 月 19 日

0

11 作者的声誉

我更正了jazzytomato的单字符令牌(D)和单个令牌(Diet.aspx)的解决方案

SELECT SUBSTRING( string , LEN(string) -  CHARINDEX('/','/'+REVERSE(string)) + 2  , LEN(string)  ) FROM SAMPLE;
作者: langus 发布者: 2017 年 9 月 19 日

1

11 作者的声誉

请尝试以下代码:

SELECT SUBSTRING( attachment, LEN(attachment) 
     - CHARINDEX('/', REVERSE(attachment)) + 2, LEN(attachment)  ) AS filename 
FROM filestable;
作者: shubham 发布者: 2019 年 4 月 4 日

0

1 作者的声誉

试试这个。这更容易。

RIGHT(字符串,CHARINDEX('/',REVERSE(字符串)) - 1)

作者: Max 发布者: 2019 年 4 月 11 日
32x32