如何在Oracle SQL查询中的方括号之间提取字符串

时间:2019-04-29 13:23:04

标签: sql oracle

我正在尝试从字符串中提取括号之间的值。我该怎么办。

例如:我有这个字符串:Abha Gupta(01792)

我想得到括号之间的结果,即:01792

我正在尝试编写这样的查询:

select substr('Gupta, Abha (01792)',instr('Gupta, Abha (01792)','(')+1,5) from dual;

这实际上给了我结果。但是问题是括号之间的字符数不一定总是5。

所以我想避免在查询中硬编码“ 5”。

请让我知道如何使该查询更通用。

谢谢, 艾卜哈

1 个答案:

答案 0 :(得分:2)

我们可以在此处尝试使用REGEXP_SUBSTR

SELECT REGEXP_SUBSTR('Gupta, Abha (01792)', '\((.+)\)', 1, 1, NULL, 1) FROM dual;