Если вы используете шаблон ;sequence_<term>;<value>;
, просто найдите подстроки, которые соответствуют:
Oracle Настройка :
CREATE TABLE your_query ( status ) AS
SELECT 'sequence_account;finished;sequence_book;started;sequence_content;finished;' FROM DUAL UNION ALL
SELECT 'sequence_book;finished;' FROM DUAL
Запрос :
SELECT REGEXP_SUBSTR( status, '(^|;)sequence_book;(.*?);', 1, 1, NULL, 2 ) AS book,
REGEXP_SUBSTR( status, '(^|;)sequence_account;(.*?);', 1, 1, NULL, 2 ) AS account
FROM your_query
Вывод :
BOOK | ACCOUNT
:------- | :-------
started | finished
finished | <em>null</em>
db <> Fiddle здесь
Однако вы утверждаете, что ввод является запросом, который вы генерируете с использованием конкатенации. Зачем беспокоиться о конкатенации и вместо этого просто отфильтровывать нескатенированные значения.