2017-02-21 16 views
0

私はそのような文字列を持っています$TAOVV*NK_LFE_11029_41586と私は11029、_の間の番号だけを選択したいと思います。私は文字列の一部を選択

substring([OrderCode],PatIndex('%_[0-9]_%', [OrderCode]),LEN([OrderCode])) 

なくnumber.How私は変更すると、それはこの例のように、常に5つの文字のない長さを定義することができることだけを抽出してみては?

あなたが二回部分文字列を実行する必要があり
+0

で試してみてくださいのみ – JohnHC

+0

が、それは '最後の前に常に関連するDBMSにタグを付けてください_'? –

+0

それは最後の2の間です_ – filippo

答えて

0

.. この

declare @code nvarchar(100)='$TAOVV*NK_LFE_11029_41586' 
select substring(substring(@code,PatIndex('%_[0-9]_%', @code)+1,LEN(@code)),1,charindex('_',substring(@code,PatIndex('%_[0-9]_%', @code)+1,LEN(@code)))-1) 
+0

の間にあります!ありがとうございます! – filippo

+0

「$ TAOVV * NK_LFE_11029_41586_41111_7474」というテキストでは動作しません。「11029」も復活しています!! –

+0

これは文字列中の '_ [0-9] _" 'の最初のパターンを選択し、2番目のパターンは選択しません。これがOPの問題かどうかは分かりません。 – BigM

関連する問題