You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用SQL截取URL中最后斜杠右侧的内容?

提取URL最后一段的最优实现方法

嘿,我来帮你搞定这个问题!要移除URL里test左侧的所有内容(也就是提取最后一个斜杠后面的部分),有几种高效且精准的实现方式,比你一开始设想的思路更直接,我给你详细拆解:

方法1:反向查找截取(通用SQL环境适用)

这是最经典也最通用的方案,利用反向字符串定位最后一个斜杠的位置,再截取后面的内容:

SELECT RIGHT(THE_TEXT, CHARINDEX('/', REVERSE(THE_TEXT)) - 1) AS LastSegment
FROM YourTable;

原理说明:

  1. REVERSE(THE_TEXT)把你的URL反向转为tset/atad/mo.yanoocym//:sptth
  2. CHARINDEX('/', REVERSE(THE_TEXT))找到反向后第一个斜杠的位置,对应原URL最后一个斜杠的位置
  3. 减1是为了排除斜杠本身,最后用RIGHT()截取从该位置到末尾的内容

方法2:用STRING_SPLIT+LAST_VALUE(SQL Server 2016+适用)

如果你的数据库支持STRING_SPLIT函数,可以用更直观的拆分后取最后一段:

SELECT LAST_VALUE(value) OVER (ORDER BY (SELECT NULL)) AS LastSegment
FROM YourTable
CROSS APPLY STRING_SPLIT(THE_TEXT, '/')
WHERE value <> ''; -- 过滤掉拆分后可能出现的空值(比如URL开头的双斜杠)

特殊场景处理:URL末尾带斜杠

如果你的URL可能存在末尾斜杠(比如https://mycompoany.com/data/test/),可以先清理末尾斜杠再用上面的方法:

SELECT RIGHT(TRIM('/' FROM THE_TEXT), CHARINDEX('/', REVERSE(TRIM('/' FROM THE_TEXT))) - 1) AS LastSegment
FROM YourTable;

至于你一开始想到的LEN(LTRIM(THE_TEXT)),其实不太适合这个场景——LTRIM()只是去除字符串左侧的空格,没法定位到斜杠的位置,所以反向查找的方式会更精准可靠。

内容的提问来源于stack exchange,提问作者emie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 07:20:57