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

从SQL表路径字段提取第4个\后.前字符串并插入同表列

提取固定结构路径中的文件名并更新列

针对你的需求,因为路径结构固定,我们可以通过嵌套CHARINDEX精准定位第4个反斜杠的位置,再结合点号的位置截取目标字符串,最后更新到column3列。

1. 先验证截取结果(可选)

执行以下查询,确认提取的文件名是否符合预期:

SELECT
  destination,
  SUBSTRING(
    destination,
    -- 定位第4个反斜杠的位置,+1是从反斜杠后一位开始截取
    CHARINDEX('\', destination, 
      CHARINDEX('\', destination, 
        CHARINDEX('\', destination, 
          CHARINDEX('\', destination) + 1
        ) + 1
      ) + 1
    ) + 1,
    -- 计算截取长度:点号位置 - 第4个反斜杠位置 -1
    CHARINDEX('.', destination) - 
    CHARINDEX('\', destination, 
      CHARINDEX('\', destination, 
        CHARINDEX('\', destination, 
          CHARINDEX('\', destination) + 1
        ) + 1
      ) + 1
    ) - 1
  ) AS target_filename
FROM documentfiles

2. 执行更新操作

确认结果正确后,执行更新语句将提取的文件名写入column3:

UPDATE documentfiles
SET column3 = SUBSTRING(
    destination,
    CHARINDEX('\', destination, 
      CHARINDEX('\', destination, 
        CHARINDEX('\', destination, 
          CHARINDEX('\', destination) + 1
        ) + 1
      ) + 1
    ) + 1,
    CHARINDEX('.', destination) - 
    CHARINDEX('\', destination, 
      CHARINDEX('\', destination, 
        CHARINDEX('\', destination, 
          CHARINDEX('\', destination) + 1
        ) + 1
      ) + 1
    ) - 1
  )

说明

嵌套CHARINDEX的逻辑是逐层定位下一个反斜杠:

  • 第一次CHARINDEX('\', destination)找到第一个反斜杠
  • 后续每次都在上一个反斜杠的位置+1处开始查找下一个,直到找到第4个
  • 截取起始位置为第4个反斜杠的位置+1,结束位置为点号的位置,计算长度后即可得到目标文件名

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 03:42:21