Vin*_*ara 5 sql sql-server sql-server-2008-r2
我有一个看起来像这样的字符串:
Y:\Data\apples\oranges\Scott\notes
Run Code Online (Sandbox Code Playgroud)
我需要一个看起来像这样的列:
apples\oranges
Run Code Online (Sandbox Code Playgroud)
这是我到目前为止,它不起作用:
SELECT SUBSTRING(
[Group],
CHARINDEX('\', [Group]) + 1,
LEN([Group]) - CHARINDEX('\', [Group]) - CHARINDEX('\', REVERSE([Group]))
) from datamap.finaltest
Run Code Online (Sandbox Code Playgroud)
字符串不会总是有一定数量的斜杠.例如,您可以:
Y:\Data\Apples\bananas
Y:\Apples\Pears\oranges\peanuts
Run Code Online (Sandbox Code Playgroud)
数据将始终具有:
drive letter + '\' + '1st level folder' + '\' + 'Second level folder'
Run Code Online (Sandbox Code Playgroud)
它可能有两个以上的级别.
我搜索过论坛但找不到具体的内容.
谢谢
小智 2
可能不是最好的方法,但这会让你到达目的地。
DECLARE @string varchar(255) = 'Y:\data\apples\oranges\Scott\notes'
SELECT LEFT(RIGHT(@string,LEN(@string)-CHARINDEX('\', @string, CHARINDEX('\', @string,1) + 1)),CHARINDEX('\', RIGHT(@string,LEN(@string)-CHARINDEX('\', @string, CHARINDEX('\', @string,1) + 1)), CHARINDEX('\',RIGHT(@string,LEN(@string)-CHARINDEX('\', @string, CHARINDEX('\', @string,1) + 1)),1)+1)-1)
Run Code Online (Sandbox Code Playgroud)