簡體   English   中英

在最后一個'/'之后獲取所有內容

[英]Getting everything after last '/'

我的TBL_Documents表中有這樣的路徑:

Uploads/Documents/6093/12/695-Graco-SW_5-15-19.pdf

我需要將它與現在正在上傳的文件進行比較,該文件如下所示:

695-Graco-SW_5-15-19.pdf

我想將表中的路徑與上傳的文件名進行比較。 我嘗試在第一個右邊使用substring() /但我真的不明白 substring 是如何工作的。 例如,我試圖這樣做:

select substring(right(path,1),1,1) as path from TBL_DOCUMENT 

但它只給了我右邊的第一個字符。 我希望在最后一個/字符之后看到所有內容。

我怎樣才能做到這一點?

我會使用一種方法來找出你需要從右邊使用多少個字符。 我會通過首先反轉字符串然后搜索'/'來做到這一點。 這將告訴你這個“/”是從右邊多少個字符。 然后我會在RIGHT function 中使用它:

SQL 小提琴

MS SQL 服務器 2017 架構設置

查詢 1

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

SELECT RIGHT(@documentName, CHARINDEX('/',REVERSE(@documentName))-1)

結果

|                          |
|--------------------------|
| 695-Graco-SW_5-15-19.pdf |

RIGHT(path,1)表示您想要路徑字符串右側的 [1] 個字符或“f”。 然后將“f”包裝在 substring 中,要求從字符串的第 [1] 個 position 開始輸入 [1] 字符。 由於傳遞給 substring 的表達式返回“f”,因此您的 substring 也返回“f”。

您想使用 charindex 和 reverse 的組合來適當地處理這個問題。 SUBSTRING(path,len(path) - charindex('/',reverse(path))) 這不會解析,但它應該讓你走上正確的軌道。

在正常情況下,這將返回字符串,從路徑的最右邊的“/”開始,到字符串的末尾。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM