如何从 SQL 查询结果中间提取整数

How to pull integers from the middle of SQL query results

我有一个SQLtable返回结果如下:

XY_4_**505543**_1227_1499547620

我只是试图拉粗体。 我尝试将 replace('XY_4_','')len() 与 -16 混合使用。但我认为我正在接近这个错误。

我希望使用类似下面的东西,但替换不允许通配符:

select replace(replace(column, 'XY_4_','')'_%%%%_%%%%%%%%%%','') from table

由于您想要的输出字符串总是从第 6 个字符开始并且总共包含 6 个字符,您可以使用 SUBSTRING 函数来获得想要的结果。

SELECT SUBSTRING(column, 6, 6) FROM table;

其中第一个参数是列名,第二个是起始索引(从 1 开始),最后一个参数是要检索的字符数。

这应该有帮助 -

SELECT
    REGEXP_SUBSTR('XY_4_**505543**_1227_1499547620','\**([0-9]*)\*',1,1,NULL,1) AS VAL
FROM
    DUAL;

输出 -

"VAL"
"505543"