2017-06-23 48 views
0

我必須使用SQL在表內查找四個數字的第一個序列。在SQL中查找varchar中的前四個數字

RVSP_040517.M 
    SERIES_040517_CP.TXT 
    SAUDE_O10N0505.M 
    SERIES_040517.txt 
    RVSP_080517.M 
    SERIES_080517_CP.TXT 

正如我們所看到的,之前有數組編號,但第一組四個數字是我想要的。

我該怎麼辦?

我從這個表期待的結果是:

0405 
    0405 
    0505 
    0405 
    0805 
    0805 

我試圖用PADINDEX,但它不工作

+2

標籤您與您正在使用的數據庫的問題。並明確顯示您想要從每個字符串得到的結果。不要讓我們猜測。 –

回答

0

隨着「PADINDEX」你大概是這個意思PATINDEX;有了這個功能,你可以找到一個字符串的模式的第一次出現的指標,這可以幫助你取出第一連續四個數字:

SELECT (case when (PATINDEX('%[0-9][0-9][0-9][0-9]%', a)=0) then NULL else substring(a,PATINDEX('%[0-9][0-9][0-9][0-9]%', a),4) end) as digits 
FROM (VALUES ('RVSP_040517.M'), ('SERIES_040517_CP.TXT'), ('SAUDE_O10N0505.M'), ('NO_4_DIGITS')) AS MyTable(a) 
相關問題