sql charindex 从字符串中提取数字

sql charindex extract number from string

我有一个名为 original_filename 的列,其中包含文本。文本中有一个我要提取的文件 ID。描述以 "error_rows_" 开头,如下所示。但是,文件 ID 的长度不同,即 999 到 999999,后跟附加文本。

 error_rows_90349_2014-04-10_00-00-00_Transaction-Login_TheHut.gpg
 error_rows_904003_2014-04-10_12-00-00_Transaction-Login_TheHut.gpg
 error_rows_90403_2014-04-10_12-00-00_Transaction-Registration_TheHut.gpg
 error_rows_9060_2014-04-11_00-00-00_Transaction-Login_TheHut.gpg

谁能帮我 sql 提取这个。最终结果应该是:

90349 904003 90403 9060

我一直在尝试使用 charindex 但没有成功

试试这个:

DECLARE @Test TABLE (TestData VARCHAR(500));
INSERT INTO @Test SELECT 'error_rows_90349_2014-04-10_00-00-00_Transaction-Login_TheHut.gpg';
INSERT INTO @Test SELECT 'error_rows_904003_2014-04-10_12-00-00_Transaction-Login_TheHut.gpg';
INSERT INTO @Test SELECT 'error_rows_90403_2014-04-10_12-00-00_Transaction-Registration_TheHut.gpg';
INSERT INTO @Test SELECT 'error_rows_9060_2014-04-11_00-00-00_Transaction-Login_TheHut.gpg';
SELECT
    *,
    CONVERT(INT, SUBSTRING(TestData, 12, CHARINDEX('_', TestData, 12) - 12))
FROM
    @Test;

结果:

90349
904003
90403
9060