Oracle - выбор строки перед указанной c строкой - PullRequest
0 голосов
/ 27 января 2020

Например, у меня есть строка «TARGET CONSUMER CLAIM», и я хотел бы выбрать всю строку перед «CLAIM». Мой вывод должен быть «TARGET CONSUMER». Я попытался regexp_substr, а также substr с помощью команды instr, но не смог получить правильный ответ

Ответы [ 3 ]

0 голосов
/ 27 января 2020

Вы можете использовать INSTR, чтобы найти местоположение CLAIM в вашей строке, а затем SUBSTR, чтобы извлечь часть строки перед этим местоположением:

SELECT SUBSTR('TARGET CONSUMER CLAIM', 1, INSTR('TARGET CONSUMER CLAIM', ' CLAIM') - 1) FROM dual

Выход

TARGET CONSUMER
0 голосов
/ 27 января 2020

Вы также можете использовать REGEXP_INSTR:

select substr('TARGET CONSUMER CLAIM',1,REGEXP_INSTR('TARGET CONSUMER CLAIM', '(\s)+CLAIM')-1) 
from dual;
0 голосов
/ 27 января 2020

Используйте функцию замены регулярного выражения REGEXP_REPLACE, чтобы удалить ненужную деталь:

REGEXP_REPLACE(col1, ' CLAIM.*', '')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...