我希望将所有文本提取到'\'
(反斜杠)。
子字符串是删除所有进行中的字符(总共17个)所必需的,因此我希望在17日之后返回所有字符,直到遇到反斜杠。
我尝试过使用charindex,但它似乎并没有停留在\
之后它会返回字符。我的代码如下
SELECT path, substring(path,17, CHARINDEX('\',Path)+ LEN(Path)) As Data
FROM [Table].[dbo].[Projects]
WHERE Path like '\ENQ%\' AND
Deleted = '0'
实施例
然后我使用substring删除前X个字符,因为总会有相同数量的前进字符
但我真正追求的是(基于上述结果)"测试1" "测试2"和"测试ABC"部分
答案 0 :(得分:1)
子字符串是删除所有进行中的字符(总共17个)所必需的,因此我想在17日之后返回所有字符,直到遇到反斜杠。
select
substring(path,17,CHARINDEX('\',Path)-17)
from
table
要解决Invalid length parameter passed to the LEFT or SUBSTRING function
错误,您可以使用CASE
select
substring(path,17,
CASE when CHARINDEX('\',Path,17)>0
Then CHARINDEX('\',Path)-17)
else VA end
)
from
table