获取最后一个“/”之后的所有内容

Kar*_*rim 10 sql sql-server string

我的表中有这样的路径TBL_Documents

上传/文档/6093/12/695-Graco-SW_5-15-19.pdf

我需要将它与现在上传的文件进行比较,如下所示:

695-Graco-SW_5-15-19.pdf

我想将表中的路径与上传的文件名进行比较。我尝试substring()在第一个右侧使用/,但我真的不明白子字符串是如何真正工作的。例如,我尝试这样做:

select substring(right(path,1),1,1) as path from TBL_DOCUMENT 
Run Code Online (Sandbox Code Playgroud)

但它只给了我右边的第一个字符。我希望看到最后一个/角色之后的一切。

我怎样才能做到这一点?

Ste*_*ord 17

我会使用一种方法来查找您需要从右侧使用多少个字符。我会首先反转字符串,然后搜索“/”来完成此操作。这将告诉您这个“/”从右边开始有多少个字符。然后我会在函数中使用它RIGHT

SQL小提琴

MS SQL Server 2017 架构设置

查询1

DECLARE @documentName varchar(100) = 'Uploads/Documents/6093/12/695-Graco-SW_5-15-19.pdf'

SELECT RIGHT(@documentName, CHARINDEX('/',REVERSE(@documentName))-1)
Run Code Online (Sandbox Code Playgroud)

结果

|                          |
|--------------------------|
| 695-Graco-SW_5-15-19.pdf |
Run Code Online (Sandbox Code Playgroud)