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

如何在T-SQL中提取两个相同分隔符之间的字符串?

基于SUBSTRING与CHARINDEX提取路径指定片段实现方案

核心逻辑

你需要提取的内容位于路径第一个反斜杠\与第二个反斜杠\之间,只需通过两次反斜杠位置定位,即可计算出截取的起始位置和长度:

  • 第一个反斜杠的位置+1就是截取的起始下标
  • 第二个反斜杠位置减去第一个反斜杠位置再减1,就是需要截取的字符长度

基础实现代码(适用于SQL Server)

SELECT 
    FilePath,
    SUBSTRING(
        FilePath,
        -- 第一个反斜杠位置+1,作为截取起始位
        CHARINDEX('\', FilePath) + 1,
        -- 截取长度=第二个反斜杠位置 - 第一个反斜杠位置 -1
        CHARINDEX('\', FilePath, CHARINDEX('\', FilePath) + 1) - CHARINDEX('\', FilePath) - 1
    ) AS FirstLevelDir
FROM 你的表名

异常兼容版本

如果存在部分路径层级不足2个反斜杠的情况,可增加判断逻辑避免报错:

SELECT 
    FilePath,
    CASE 
        -- 先判断路径中反斜杠总数是否≥2
        WHEN LEN(FilePath) - LEN(REPLACE(FilePath, '\', '')) >= 2 
        THEN SUBSTRING(
            FilePath,
            CHARINDEX('\', FilePath) + 1,
            CHARINDEX('\', FilePath, CHARINDEX('\', FilePath) + 1) - CHARINDEX('\', FilePath) - 1
        )
        ELSE NULL -- 可自行修改为符合需求的缺省值
    END AS FirstLevelDir
FROM 你的表名

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 04:24:02