Tsql 链接的T-SQL子字符串

Tsql 链接的T-SQL子字符串,tsql,Tsql,我有一个字符串,要使用该字符串从中检索子字符串: "app/reports/here" 我想要的结果子字符串是“app/reports” 我使用了一些T-SQL,如下所示: DECLARE @document varchar(64); SELECT @document = 'app/reports/here'; SELECT substring(@document, 0, CHARINDEX('/', replace(@document,'app/',''))); GO 上面代码

我有一个字符串,要使用该字符串从中检索子字符串:

"app/reports/here"
我想要的结果子字符串是
“app/reports”

我使用了一些T-SQL,如下所示:

DECLARE @document varchar(64);  
SELECT @document = 'app/reports/here';  
SELECT substring(@document, 0, CHARINDEX('/', replace(@document,'app/','')));  
GO
上面代码的结果是“app/rep”

我怎样才能得到我需要的全部字符串?有人把查林德斯弄糊涂了


谢谢

只需在
CHARINDEX
中添加4个字符,因为您将原始字符串中的4个字符替换为空字符串,因此
CHARINDEX
的结果将随之移动。因此,它应该是:

DECLARE @document varchar(64);  
SELECT @document = 'app/reports/here';  
SELECT substring(@document, 0, CHARINDEX('/', replace(@document,'app/',''))+4);  
GO 

只需在
CHARINDEX
中添加4个字符,因为您将原始字符串中的4个字符替换为空字符串,因此
CHARINDEX
的结果将随之移位。因此,它应该是:

DECLARE @document varchar(64);  
SELECT @document = 'app/reports/here';  
SELECT substring(@document, 0, CHARINDEX('/', replace(@document,'app/',''))+4);  
GO 

你想解析n个位置吗?你想解析n个位置吗?