2011-07-26 26 views
4

權我如何T-SQL查詢字符串字符,並採取所有的char表達

採取:

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

查找常量表達式 '\\ Cjserver \',並採取一切合適的表達的,因此正確的指針是:

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

我知道某種combinaton的和CHARINDEX應該這樣做。

+0

只是爲了澄清,「'\\ Cjserver \'右邊的所有字符將是」TrialWorks \ CaseFiles \ 10000269 \ Pleadings \ RJI - 10005781.doc「而不是您列出的」正確指針「。所以只是迂腐,但你真的想包括該字符串和它之前的兩個斜線。 –

回答

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

我只是用1000對於一些任意大的價值。你可能應該更適合你的數據。

1

你想用串,你的目標的索引之後開始一個,並採取整個字符串的長度小於目標

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

的CHARINDEX在這種情況下,我想在y

後一切
+0

確定只是charindex groovy ...謝謝你cmsjr –

+0

np,很高興它幫助。 – cmsjr

0
DECLARE @String VARCHAR(100) 
SET @String = 'RJI#\\Cjserver\TrialWorks\CaseFiles\10000269\Pleadings\RJI - 10005781.doc' 

SELECT RIGHT(@String,LEN(@String)-PATINDEX('%\\Cjserver\%',@String)+1) 
相關問題