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

SQL如何移除URL中Question/之前的内容?求正确实现语句

提取URL中"Question/"之后内容的SQL解决方案

你之前的语句是取URL最后一个斜杠后的内容,和需求不符——我们需要定位的是**特定字符串"Question/"**的位置,而非最后一个斜杠。以下是对应不同SQL方言的正确写法:

SQL Server 写法

直接通过CHARINDEX定位"Question/"的位置,再用SUBSTRING截取后续内容:

SELECT SUBSTRING(URL, CHARINDEX('Question/', URL) + 9, LEN(URL)) AS ProcessedURL
FROM YourTableName

如果存在不含"Question/"的URL,可增加判断避免报错:

SELECT 
    CASE 
        WHEN CHARINDEX('Question/', URL) > 0 THEN SUBSTRING(URL, CHARINDEX('Question/', URL) + 9, LEN(URL))
        ELSE URL -- 可根据需求改为返回NULL或空字符串
    END AS ProcessedURL
FROM YourTableName

MySQL 写法

使用LOCATE定位目标字符串,再截取后续内容:

SELECT SUBSTRING(URL, LOCATE('Question/', URL) + 9) AS ProcessedURL
FROM YourTableName;

带判断的版本:

SELECT 
    CASE 
        WHEN LOCATE('Question/', URL) > 0 THEN SUBSTRING(URL, LOCATE('Question/', URL) + 9)
        ELSE URL
    END AS ProcessedURL
FROM YourTableName;

为什么之前的方法无效?

你之前的语句right([URL], charindex('/', reverse([URL])) - 1)逻辑是提取最后一个斜杠之后的内容,但你的需求是提取**"Question/"之后的所有内容**——比如URL为https://site.com/path/Question/123/subpath时,前者会返回subpath,而我们需要的是123/subpath,所以必须基于"Question/"这个特定标记来定位截取。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 03:10:25