我有一个表,里面有这个值:
Articles/Search/ArtMID/2681/ArticleID/2218/Diet.aspx
OurStory/MeettheFoodieandtheMD.aspx
TheFood/OurMenu.aspx
我想要得到这个
Diet.aspx
MeettheFoodieandtheMD.aspx
OurMenu.aspx
我该怎么做呢?
发布于 2013-01-19 17:40:27
在SQL中这样做的方法:
SELECT SUBSTRING( string , LEN(string) - CHARINDEX('/',REVERSE(string)) + 2 , LEN(string) ) FROM SAMPLE;
JSFiddle此处http://sqlfiddle.com/#!3/41ead/11
发布于 2013-01-19 17:34:04
请尝试:
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
发布于 2020-02-02 14:41:55
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表时的常用方法:
SELECT REVERSE ((
SELECT TOP 1 VALUE FROM STRING_SPLIT(REVERSE(mySearchString), '/')
)) AS myLastValue
FROM myTable
https://stackoverflow.com/questions/14412898
复制相似问题