首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >拆分字符串并获取最后一个元素

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

Stack Overflow用户
提问于 2013-01-19 17:23:45
回答 12查看 67.1K关注 0票数 48

我有一个表,里面有这个值:

代码语言:javascript
复制
Articles/Search/ArtMID/2681/ArticleID/2218/Diet.aspx
OurStory/MeettheFoodieandtheMD.aspx
TheFood/OurMenu.aspx

我想要得到这个

代码语言:javascript
复制
Diet.aspx
MeettheFoodieandtheMD.aspx
OurMenu.aspx

我该怎么做呢?

EN

回答 12

Stack Overflow用户

回答已采纳

发布于 2013-01-19 17:40:27

在SQL中这样做的方法:

代码语言:javascript
复制
SELECT SUBSTRING( string , LEN(string) -  CHARINDEX('/',REVERSE(string)) + 2  , LEN(string)  ) FROM SAMPLE;

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

票数 69
EN

Stack Overflow用户

发布于 2013-01-19 17:34:04

请尝试:

代码语言:javascript
复制
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
票数 6
EN

Stack Overflow用户

发布于 2020-02-02 14:41:55

代码语言:javascript
复制
SELECT REVERSE ((
    SELECT TOP 1 value FROM STRING_SPLIT(REVERSE('Articles/Search/ArtMID/2681/ArticleID/2218/Diet.aspx'), '/')
)) AS fName
Result: Diet.aspx

标准STRING_SPLIT不允许取最后一个值。

诀窍是在使用STRING_SPLIT拆分之前颠倒字符串(REVERSE),从末尾获得第一个值(TOP 1 value),然后需要再次颠倒结果(REVERSE)以恢复原始字符序列。

以下是处理SQL表时的常用方法:

代码语言:javascript
复制
SELECT REVERSE ((
    SELECT TOP 1 VALUE FROM STRING_SPLIT(REVERSE(mySearchString), '/')
)) AS myLastValue
FROM myTable 
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14412898

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档