Простейшая задача, но почему-то далеко не у всех сразу всплывает ее решение. Всего-то нужно использовать три строковых функции.
Допустим есть таблица city с населенными пунктами страны. В таблице есть поле name, в котором хранятся названия населенных пунктов. Например, "деревня Воздвиженка, Половинский сельсовет, Целинный муниципальный район, Курганская область". Как получить только название деревни, без всех принадлежностей этой деревни к сельсоветам и районам - "деревня Воздвиженка"?
Для этого можно воспользоваться SQL запросом
Select Replace(c.name,Substr(c.name, Instr(c.name, ",")), "") as nameShort, c.* From city c
Разберем, что делает данный запрос.
Строковая функция Instr возвращает позицию первого вхождения подстроки в строку. В нашем случае это позиция первой запятой в названии населенного пункта.
Строковая функция Substr возвращает из указанной строки указанное количество символов от указанной позиции. В нашемслучае количество символов не указано, поэтом будет возвращена подстрока от первой запятой до конца строки.
Строковая функция Replace заменяет в указанной строке одну подстроку на другую.
только авторизованные пользователи могут оставлять комментарии