T-SQL查找字符字符串并将所有字符置于表达式右侧
我该怎么办 采取:T-SQL查找字符字符串并将所有字符置于表达式右侧,sql,sql-server,tsql,Sql,Sql Server,Tsql,我该怎么办 采取: RJI\chserver\TrialWorks\CaseFiles\10000269\conferences\RJI-10005781.doc 找到常量表达式“\\Cjserver\”,并将所有内容移到表达式右侧,以便正确的指针为: \\\\Cjserver\TrialWorks\CaseFiles\10000269\conferences\RJI-10005781.doc 我知道应该使用RIGHT和CHARINDEX的某种组合。您想使用子字符串,从目标的索引后开始,然后取整
RJI\chserver\TrialWorks\CaseFiles\10000269\conferences\RJI-10005781.doc
找到常量表达式“\\Cjserver\”,并将所有内容移到表达式右侧,以便正确的指针为:
\\\\Cjserver\TrialWorks\CaseFiles\10000269\conferences\RJI-10005781.doc
我知道应该使用
RIGHT
和CHARINDEX
的某种组合。您想使用子字符串,从目标的索引后开始,然后取整个字符串的长度减去目标的CHARINDEX
declare @string varchar(1000)
set @string = 'xxxxxxxxyzzzzzzzz'
select substring(@string, charindex('y', @string) +1,
len(@string) - charindex('y', @string))
zzzzzzzz
在这种情况下,我希望在y之后的一切
DECLARE @String VARCHAR(100)
SET @String = 'RJI#\\Cjserver\TrialWorks\CaseFiles\10000269\Pleadings\RJI - 10005781.doc'
SELECT RIGHT(@String,LEN(@String)-PATINDEX('%\\Cjserver\%',@String)+1)
我只是用1000来表示任意大的值。您可能应该根据您的数据来调整其大小。只是想澄清一下,“\\Cjserver\”右侧的所有字符都是“TrialWorks\CaseFiles\10000269\Conquences\RJI-10005781.doc”,而不是您列出的“正确指针”。所以,只是学究,但你真的想包括字符串和前面的两个斜杠。
DECLARE @input NVarChar(1000) =
'RJI#\\Cjserver\TrialWorks\CaseFiles\10000269\Pleadings\RJI - 10005781.doc',
@match NVarChar(100) =
'\\Cjserver';
DECLARE @position Int = CHARINDEX(@match, @input);
SELECT SUBSTRING(@input, @position, 1000);