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

如何在SQL(SSMS)中提取两个相同字符之间的值——文件路径首目录名提取方法咨询

在SSMS中提取路径第一个目录名的最优方法

嘿,这个需求挺常见的,咱直接上最实用的方案,按性能和兼容性排序:

方法一:CHARINDEX + SUBSTRING(最优,全版本兼容)

这是性能最好的方案,用的都是SQL Server原生的轻量字符串函数,不管你用哪个版本的SQL Server都能跑,大数据量下效率也很高。

核心思路是定位第一个和第二个/的位置,截取中间的内容后用TRIM清理可能的多余空格:

SELECT 
    原路径 = YourColumnName,
    第一个目录名 = TRIM(SUBSTRING(
        YourColumnName,
        -- 第一个/的位置+1,就是目录名的起始位置
        CHARINDEX('/', YourColumnName) + 1,
        -- 计算截取长度:第二个/的位置 - 第一个/的位置 -1
        CHARINDEX('/', YourColumnName, CHARINDEX('/', YourColumnName) + 1) - CHARINDEX('/', YourColumnName) - 1
    ))
FROM YourTableName
-- 过滤格式不符合的路径(确保至少有两个/,避免截取出错)
WHERE YourColumnName LIKE '/%/%'

兼容边界情况

如果数据里存在只有一级目录的路径(比如/Example Folder/或者/Example File),可以加CASE语句兼容:

SELECT 
    原路径 = YourColumnName,
    第一个目录名 = CASE
        -- 检查是否存在第二个/
        WHEN CHARINDEX('/', YourColumnName, CHARINDEX('/', YourColumnName) + 1) = 0 THEN
            -- 没有第二个/,截取第一个/之后的所有内容
            TRIM(SUBSTRING(YourColumnName, CHARINDEX('/', YourColumnName) + 1, LEN(YourColumnName) - CHARINDEX('/', YourColumnName)))
        ELSE
            TRIM(SUBSTRING(
                YourColumnName,
                CHARINDEX('/', YourColumnName) + 1,
                CHARINDEX('/', YourColumnName, CHARINDEX('/', YourColumnName) + 1) - CHARINDEX('/', YourColumnName) - 1
            ))
    END
FROM YourTableName
WHERE YourColumnName IS NOT NULL AND YourColumnName LIKE '/%'

方法二:STRING_SPLIT(SQL Server 2022+ 可选)

如果用的是SQL Server 2022及以上版本,STRING_SPLIT新增了ordinal参数来保证拆分顺序,代码会更简洁:

SELECT 
    原路径 = t.YourColumnName,
    第一个目录名 = TRIM(s.value)
FROM YourTableName t
-- 按/拆分,指定ordinal参数保留顺序
CROSS APPLY STRING_SPLIT(t.YourColumnName, '/', 1) s
-- 拆分后第一个/前是空字符串,所以第一个目录是ordinal=2的项
WHERE s.ordinal = 2 
  AND t.YourColumnName IS NOT NULL 
  AND t.YourColumnName LIKE '/%'

这个方案代码更易读,但性能不如第一种,且仅支持2022+版本,适合小数据量或追求代码简洁的场景。

额外提醒

  • 如果路径同时存在/和\分隔符,先统一替换:REPLACE(YourColumnName, '\', '/')
  • 记得处理NULL值和格式不规范的路径,避免返回错误或空值

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 07:32:45