2017-02-21 89 views
0

我有一個像這樣的字符串$TAOVV*NK_LFE_11029_41586,我想只選擇11029,_之間的數字。我試着用SELECT部分​​字符串

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

但是不能提取這個數字。

+0

請只標記相關的DBMS – JohnHC

+0

是否總是前的最後'_'? –

+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] _」'的第一個模式,而不是第二個模式。我不知道這是否是OP的問題。 – BigM