【发布时间】:2016-06-09 01:22:54
【问题描述】:
我有以下工作正常的 T-SQL 查询:
declare @myString varchar(max) = 'Import Development \ local \ Jan
2016 \ Jenny Asti \ reimbur.docx'
select substring((@myString), 1, len(@myString) - charindex('\', reverse (@myString)))
我希望在最后一个反斜杠之前返回字符串,并且我正确地得到了这个:
Testing Development \ local \ Jan 2016 \ Jenny Asti
但是,我需要为表运行此命令,而不是使用变量。所以,我改成了如下:
select substring([path], 1, len(path)- charindex('\',reverse(path))) from test
但我得到一个错误:Invalid length parameter passed to the SUBSTRING function.
我可以确认\ 确实存在于表中。此外,如果我查看结果窗口,查询能够列出以下内容:
导入开发\本地\Jan 2016 \Jenny
我认为解析字符串的最后一部分有问题
Asti \ reimbur.docx.
【问题讨论】:
标签: sql sql-server tsql sql-server-2012 substring