2011-07-26 4 views
4

の右側にあるすべての文字を取る:T-SQLの文字列を検索し、I</p> <p>取るかどう表現

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"となります。だからちょうどペタンティックであるが、本当にあなたはその文字列とそれに先行する2つのスラッシュを含めたいと思う。 –

答えて

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

あなたのターゲットのインデックスの後に1を開始、サブストリングを使用して、文字列全体の長さを取りたいが少ないこの場合、あなたのターゲット

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

のCHARINDEXは、私はY

後にすべてのものをしたいです
+0

okindly charindex groovy ... thankyou 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) 
関連する問題