#sql #регулярные_выражения #строки #oracle #plsql
Есть запрос: SELECT my_scheme.my_package.my_func ('param1', 'param2', int_param3) AS her FROM DUAL который возвращает: р-н Московский, п. Первомайский, ул. трактористов, д. 10, п. 11, ящ. 32123 Мне нужно обрезать , ящ. 32123 . Кол-во запятых до может быть разным, всегда надо обрезать начиная с последней запятой.
Ответы
Ответ 1
Если задача стоит как отрезать кусок начиная с последней запятой, то регулярка тут не обязательна. Можно сделать например так: substr(s, 1, instr(s, ',', -1) - 1)Ответ 2
select regexp_replace(str,'(.*),.*','\1') from DUALОтвет 3
Так покороче и более понятно: select regexp_replace(str, ',[^,]*$') from ( select 'р-н Московский, п. Первомайский, ул. трактористов, д. 10, п. 11, ящ. 32123' str from dual ); р-н Московский, п. Первомайский, ул. трактористов, д. 10, п. 11
Комментариев нет:
Отправить комментарий