Как извлечь конкретную строку из столбца - PullRequest
0 голосов
/ 04 июня 2019

Я пытаюсь извлечь конкретную строку, которая начинается с 'A0', и вернуть мне строку A0 вместе с остальными 9 значениями из столбца в таблице. Мне нужно извлечь номер аутентификации в столбце примечаний к претензиям в таблице.

Я пытаюсь использовать функцию regexp_substr. Я хочу извлечь любую строку, которая начинается с 'A0' в столбце clm_notes в таблице.

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

так выглядит столбец в таблице

Clm_notes column 
New Auth from auth - A071869573

Желаемые результаты, которые я хочу получить, - извлечь строку, начинающуюся с 'A0'

A071869573

Ответы [ 2 ]

1 голос
/ 04 июня 2019

Вам понадобится что-то вроде следующего:

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
0 голосов
/ 04 июня 2019

Вместо того, чтобы соответствовать тому, что вы хотите, сопоставьте то, что вы не хотите, и удалите его:

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

Это соответствует всему ранее, включая '- A0' и заменяет его просто 'A0', эффективно удаляявсе предшествующее 'A0'.

...