根據您的回答我的意見......你有以「/」或沒有結束的輸入字符串?我已經將這兩種類型的測試字符串放在此查詢中,並使用SQL 2008作爲dbms。只是註釋掉Set @tstString來運行每個條件,你會看到兩個結果的可能性。
Declare @tmpFirstMark int
Declare @tmpLastMark int
Declare @tmpUseMark int
Declare @tstString varchar(100)
Set @tstString = 'Filename1/filename2/filename2/filename4/'
Set @tstString = 'File1/file2/file3/file4/file5/file6'
-- Calculate 1st Occurrence of "/"
Set @tmpFirstMark = PATINDEX('%/%',@tstString)
-- Calculate last Occurrence of "/"
Set @tmpLastMark = (LEN(@tstString) - PATINDEX('%/%',REVERSE(@tstString)) + 1)
-- Calculate 2nd to last Occurrence of "/"
Set @tmpUseMark = @tmpLastMark - PATINDEX('%/%', REVERSE(SUBSTRING(@tstString, 1, @tmpLastMark-1)))
Select
@tstString
,@tmpFirstMark
,@tmpLastMark
,@tmpUseMark
,SUBSTRING(@tstString, @tmpLastMark + 1, LEN(@tstString)) as 'resultSTR'
,SUBSTRING(@tstString, @tmpUseMark + 1, @[email protected]) as 'otherResult'
標記使用的dbms。 (答案可能是特定產品!) – jarlh
這兩個例子......一個最後有「/」,另一個沒有?你能否保證「/」結束? –
一般來說....反轉字符串,然後得到第一個。大多數數據庫都有某種反轉功能。 –