Страницы

Поиск по вопросам

суббота, 8 февраля 2020 г.

SQL ORACLE Отделить буквы от цифр в строке

#sql #oracle


Подскажите, каким образом можно отделить в строке буквенную часть от численной например
есть чертеж СК-123 или М.123. Нужно отделить левую буквенную часть от правой численной
что бы дальше я смогла отсортировать данные сначала по левой части (по алфавиту), затем
после знака раз делителя сортировать по правой .
    


Ответы

Ответ 1



Можете использовать функцию ltrim( string1, [ trim_string ] ), которая удаляет все перечисленные подстроки в trim_string из string1. Примеры использования: SQL> SELECT LTRIM('123123.Ltrim123', '123.') FROM DUAL; LTRIM('123123LTRIM123','123') Ltrim123 SQL> SELECT LTRIM('xyxzyyy-Ltrim', 'xyz-') FROM DUAL; LTRIM('XYXZYYYLTRIM','XYZ') Ltrim Также существует симметричная функция rtrim. Отсылка

Ответ 2



Можно попробовать с помощью регулярных выражений. Примерно так: with s as ( select 'СК-123' as s from dual union all select 'М.123' as s from dual ) select regexp_substr(s,'[[:alpha:]]+') as symb, regexp_substr(s,'[[:digit:]]+') as num from s

Комментариев нет:

Отправить комментарий