如何从列中提取特定字符串

How to extract a specific string from a column

我正在尝试提取以 'A0' 开头的特定字符串,并返回字符串 A0 以及 table 中列中的其余 9 个值。我需要在 table.

的声明注释列中提取授权号

我正在尝试使用 regexp_substr 函数。我想在 table 的 clm_notes 列中提取以 'A0' 开头的任何字符串。

SELECT 
regexp_substr(CLM_NOTES, '[^A0]+', 1,1) as auth_num
FROM claims_table

这是该列在 table

中的样子
Clm_notes column 
New Auth from auth - A071869573

我想要的期望结果是提取以 'A0'

开头的字符串

A071869573

您将需要以下内容:

SELECT 
regexp_substr(CLM_NOTES, 'A0.*$', 1,1) as auth_num
FROM claims_table

或者如果 A0 之后的所有字符都是数字:

SELECT 
regexp_substr(CLM_NOTES, 'A0[0-9]*$', 1,1) as auth_num
FROM claims_table

另一种更快的方法可能是:

SELECT 
substr(CLM_NOTES, instr(CLM_NOTES,'A0')) as auth_num
FROM claims_table

与其匹配你想要的,不如匹配你不想要的并删除它:

select
    regexp_replace(CLM_NOTES, '.*- A0', 'A0') as auth_num
from claims_table

这会匹配 '- A0' 之前的所有内容,包括 '- A0' 并将其替换为 'A0',有效地删除 'A0'.

之前的所有内容