Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Как разделить Адрес на <улицу><дом>< кв.> / 6 сообщений из 6, страница 1 из 1
24.04.2017, 13:18
    #39443245
Бакыт
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как разделить Адрес на <улицу><дом>< кв.>
Здравствуйте, необходимо разбить существующую базу вот такой структуров на 3 составные части
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
улица Балуан Шолака, дом 36.
Алматинский район, поселок Железнодорожный, улица Акжар, дом 12 А.
улица Степная, дом 16. 
[color=red]улица Болтирик, дом 8, квартира 2[/color]
улица Валиханова, дом 5
улица Кылышбая, дом 140
улица Келгенбаева, дом 72.
улица Досымбаева, дом 58
улица Курамысова, дом 7, квартира 2
улица Маметова, дом 34.
улица Момышулы, дом 10.
улица 30 лет Победы, дом 6.


должно быть
street:Болтирик
streetnumber: дом 8
streetnumber1: квартира 2
...
Рейтинг: 0 / 0
24.04.2017, 13:46
    #39443277
Гуанокод
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как разделить Адрес на <улицу><дом>< кв.>
Бакыт,

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
with q as (select 'улица Балуан Шолака, дом 36.' as q from dual union all
select 'Алматинский район, поселок Железнодорожный, улица Акжар, дом 12 А.' from dual union all
select 'улица Степная, дом 16. ' from dual union all
select 'улица Болтирик, дом 8, квартира 2' from dual union all
select 'улица Валиханова, дом 5' from dual union all
select 'улица Кылышбая, дом 140' from dual union all
select 'улица Келгенбаева, дом 72.' from dual union all
select 'улица Досымбаева, дом 58' from dual union all
select 'улица Курамысова, дом 7, квартира 2' from dual union all
select 'улица Маметова, дом 34.' from dual union all
select 'улица Момышулы, дом 10.' from dual union all
select 'улица 30 лет Победы, дом 6.' from dual )
select substr(q, instr(q,'улица ')+6,instr(substr(q, instr(q,'улица ')+6,100),',')-1) as street
     , substr(q, instr(q,'дом '), instr(substr(replace(q||',','.',','), instr(q,'дом '),100),',')-1 ) as dom
     , substr(q, case when instr(q,'квартира ') != 0 then instr(q,'квартира ') else length(q)+1 end,100) as kv
  from q
...
Рейтинг: 0 / 0
24.04.2017, 13:58
    #39443289
Vadim Lejnin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как разделить Адрес на <улицу><дом>< кв.>
Бакыт,

substr в общем случае не поможет
Что скажешь
Красноярский край Ачинский район н.п. Горный дом 18 строение 2 корпус 6 квартира 2a

Поиск по форуму строка КЛАДР
...
Рейтинг: 0 / 0
24.04.2017, 14:56
    #39443337
Be or not to be...
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как разделить Адрес на <улицу><дом>< кв.>
Если нет отдельных полей под каждый объект, либо хитроумной проверки на поле ввода(которую все-равно девочка обойдет даже не осознавая это), то никак
...
Рейтинг: 0 / 0
24.04.2017, 15:27
    #39443366
Vladimir Filin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как разделить Адрес на <улицу><дом>< кв.>
Бакыт,

в основном , можно решить этим кодом, остатки руками:
Помогите составить регулярное выражение
тесты далее
Пользуй.
...
Рейтинг: 0 / 0
24.04.2017, 15:41
    #39443388
Бакыт
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как разделить Адрес на <улицу><дом>< кв.>
спасибо всем
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Как разделить Адрес на <улицу><дом>< кв.> / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]