T-SQL Find char string and take all char to right

2020-04-08 20:56发布

How do I

Take:

RJI#\\\\Cjserver\TrialWorks\CaseFiles\10000269\Pleadings\RJI - 10005781.doc

Find Constant expression '\\Cjserver\' and take everything to the right of the expression so the correct pointer would be:

\\\\Cjserver\TrialWorks\CaseFiles\10000269\Pleadings\RJI - 10005781.doc

I know some kind of combinaton of RIGHT and CHARINDEX should do it.

3条回答
成全新的幸福
2楼-- · 2020-04-08 21:04
DECLARE @String VARCHAR(100)
SET @String = 'RJI#\\Cjserver\TrialWorks\CaseFiles\10000269\Pleadings\RJI - 10005781.doc'

SELECT RIGHT(@String,LEN(@String)-PATINDEX('%\\Cjserver\%',@String)+1)
查看更多
再贱就再见
3楼-- · 2020-04-08 21:17
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);

I'm just using 1000 for some arbitrarily large value. You should probably size this more appropriately to your data.

查看更多
劫难
4楼-- · 2020-04-08 21:17

You want to use Substring, starting one after the index of your target, and take the length of the entire string less the charindex of your target

  declare @string varchar(1000)
     set @string = 'xxxxxxxxyzzzzzzzz'
     select substring(@string, charindex('y', @string) +1, 
     len(@string) - charindex('y', @string))
     zzzzzzzz

In this case I want everything after the y

查看更多
登录 后发表回答