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

如何在SQL中提取文件路径最后一个\之后的字符串?

SQL提取路径最后一个反斜杠后的内容

给定路径:C:\ABC\BHDKJF\20240102\Files_20240102_newfile,要提取最后一个\之后的部分Files_20240102_newfile,不同SQL数据库的实现方法如下:

SQL Server

使用REVERSE+CHARINDEX+RIGHT组合实现:

SELECT RIGHT(
    'C:\ABC\BHDKJF\20240102\Files_20240102_newfile',
    CHARINDEX('\', REVERSE('C:\ABC\BHDKJF\20240102\Files_20240102_newfile')) - 1
) AS filename;

原理:先反转字符串找到第一个\的位置,再通过RIGHT截取对应长度的字符。

MySQL

直接用SUBSTRING_INDEX函数指定分隔符和倒数第1个部分:

SELECT SUBSTRING_INDEX('C:\\ABC\\BHDKJF\\20240102\\Files_20240102_newfile', '\\', -1) AS filename;

注意:MySQL中反斜杠需要转义,因此用\\表示单个\。

Oracle

提供两种实现方式:

方法1:正则表达式匹配

SELECT REGEXP_SUBSTR('C:\ABC\BHDKJF\20240102\Files_20240102_newfile', '[^\\]+$') AS filename FROM DUAL;

方法2:INSTR+SUBSTR组合

SELECT SUBSTR(
    'C:\ABC\BHDKJF\20240102\Files_20240102_newfile',
    INSTR('C:\ABC\BHDKJF\20240102\Files_20240102_newfile', '\', -1) + 1
) AS filename FROM DUAL;

原理:INSTR(..., '\', -1)定位最后一个\的位置,再用SUBSTR从该位置的下一位开始截取到末尾。

通用适配思路

如果数据库支持字符串反转和索引查找,都可以采用类似逻辑:

  • 反转目标字符串
  • 找到第一个分隔符\的位置
  • 从原字符串右侧截取对应长度的内容

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 07:02:04