Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
T-SQL查找字符字符串并将所有字符置于表达式右侧_Sql_Sql Server_Tsql - Fatal编程技术网

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);