Tsql 仅从Url中获取文件名

Tsql 仅从Url中获取文件名,tsql,Tsql,我试图在这里获取.aspx文件名的子字符串,但不太确定如何进行 所以我不需要文件路径,只需要文件名: e、 g 我只需要一个页面。aspx你可以 ;with EG(fn) as ( select 'http://somesite.com/directory1/directory2/SomePage.aspx' union select '' union select '/xxx.php' ) select right(fn, charindex('/', rev

我试图在这里获取.aspx文件名的子字符串,但不太确定如何进行

所以我不需要文件路径,只需要文件名:

e、 g

我只需要一个页面。aspx

你可以

;with EG(fn) as (
    select 'http://somesite.com/directory1/directory2/SomePage.aspx' union
    select '' union
    select '/xxx.php'
)
select 
    right(fn, charindex('/', reverse(fn) + '/') - 1) 
from EG

-------------

xxx.php
SomePage.aspx
(第一次出现/在反向url中;添加/以处理空/无斜杠字符串)

您可以

;with EG(fn) as (
    select 'http://somesite.com/directory1/directory2/SomePage.aspx' union
    select '' union
    select '/xxx.php'
)
select 
    right(fn, charindex('/', reverse(fn) + '/') - 1) 
from EG

-------------

xxx.php
SomePage.aspx

(在反向url中第一次出现/;添加/以处理空/无斜杠字符串)

您是否正在寻找T-SQL语法来获得此结果,例如“从FileTable Where{whereclause}中选择{filename}”?是的。我正在尝试选择一个表字段的子字符串。我认为这会起作用,但问题是一些charindex返回了一个零,所以当它对0执行-1操作时,它会爆炸。我需要处理零个案例,并且不向其中添加-1。从条目中选择右键(名称,(charindex('/',反向(名称))-1)。Charindex在一种情况下返回零,因为Name为emptyyou可以在Charindex函数周围抛出IF语句,以确保处理前结果大于或等于1。使该部分相当长,但它完成了任务。您是否正在寻找T-SQL语法来实现这一点,如“从FileTable Where{whereclause}中选择{filename}”?是的。我正在尝试选择一个表字段的子字符串。我认为这会起作用,但问题是一些charindex返回了一个零,所以当它对0执行-1操作时,它会爆炸。我需要处理零个案例,并且不向其中添加-1。从条目中选择右键(名称,(charindex('/',反向(名称))-1)。Charindex在一种情况下返回零,因为Name为emptyyou可以在Charindex函数周围抛出IF语句,以确保处理前结果大于或等于1。使该部分相当长,但它完成了任务。是的,尝试了从条目中选择正确的(e.Name,charindex(“/”,reverse(e.Name))-1),并将无效的长度参数传递到正确的函数。您需要添加一个/来说明没有/的字段<代码>。。。reverse(e.Name)+“/”)yea尝试从条目中选择右键(e.Name,charindex(“/”,reverse(e.Name))-1)并将无效的长度参数传递到右键函数。您需要为没有/”的字段添加一个/<代码>。。。反向(例如名称)+'/')