2012-06-15 47 views
1

我想在這裏得到.aspx文件的子字符串,但不太清楚如何去做。獲取只是文件名的URL的

所以我不想要文件路徑,只是文件名:

例如, http://somesite.com/directory1/directory2/SomePage.aspx

我只需要SomePage.aspx頁面

+0

您是否在尋找T-SQL的語法來得到這個,像「選擇{文件名}從FileTable Where {whereclause}'? – ganders

+0

是的。我試圖選擇一個表字段的子字符串。 – PositiveGuy

+0

我認爲這會起作用,但問題是一些charindex正在返回一個零,所以當它在-1上發生-1時就會彈出。我需要處理零個案例,並且不要向Entry中添加-1選擇權(Name,(charindex('/',reverse(Name)) - 1))。 Charindex在一種情況下返回零,因爲Name是空的 – PositiveGuy

回答

1

即可;

;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 

(中/在反向鏈接第一次發生;添加/處理空/無斜線的字符串)

+0

是從入口嘗試這個選擇正確(e.Name,charindex('/',反向(e.Name)) - 1)並獲得傳遞給右功能的無效長度參數 – PositiveGuy

+0

您需要爲字段添加一個/沒有/; '... reverse(e.Name)+'/')' –

+0

恩,這在T-SQL中很複雜嗎?一定是爲什麼我不喜歡它... – PositiveGuy