在SQL中查找varchar中的前四个数字

时间:2017-06-23 20:47:20

标签: sql numbers varchar

我必须使用SQL在表格中找到第一个四个数字的序列。

    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,但它没有工作

1 个答案:

答案 0 :(得分: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)