2015-01-16 76 views
0

我在SQL Server的表中有一個字段值,它包含文件的路徑,該路徑用-字符分隔,我想要的是從開頭選擇子字符串(零索引)以最後一次出現該分隔字符。從字符串的第一半開始的子字符串

DECLARE @path NVARCHAR(500)   
SELECT @path = 'F:\Fruit Seeds-Category Oil\Quality- Fine Seeds', 

我需要提取子串「F:\果種子類別油\質量」只有

我的查詢

SELECT LEFT(@path, LEN(@path) - CHARINDEX('-',REVERSE(@path))) 

什麼是最好的方式做這個?

+1

您從您的問題得到結果 –

+0

是的,但我想要其他解決方案,那麼這個 – DareDevil

+0

你的意思是 - **這是實現這個**的最佳方式嗎? @DareDevil –

回答

1

此發現的最後一個索引「 - 」字符串中:

DECLARE @path NVARCHAR(500) = 'F:\Fruit Seeds-Category Oil\Quality- Fine Seeds'; 

DECLARE @i INT = 1; 
DECLARE @ix INT = 0; 

WHILE @i > 0 
BEGIN 
    SET @ix = @i; 
    SET @i = CHARINDEX('-', @Path, @i + 1); 
END 

SELECT LEFT(@path, @ix - 1) 

你可以清楚地把它重複使用一個函數內。

相關問題