powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Перенос символа из конца ячейки в начало.
20 сообщений из 20, страница 1 из 1
Перенос символа из конца ячейки в начало.
    #39685823
YouIm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть столбец City указывается как: 'Москва г'
Нужно вывести 'г Москва', а ещё лучше 'г. Москва.'
Как это можно сделать?
...
Рейтинг: 0 / 0
Перенос символа из конца ячейки в начало.
    #39685825
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Говно-данные автоматически не очистить.
RTFM regexp_replace
...
Рейтинг: 0 / 0
Перенос символа из конца ячейки в начало.
    #39685829
feagor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
YouIm,
А если будет "город Москва", "Москва гор.",а еще города могут писать с ошибками и сотнями разных способов. Заводите справочник городов и ссылайтесь на него
...
Рейтинг: 0 / 0
Перенос символа из конца ячейки в начало.
    #39685837
Dshedoo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plsql
1.
2.
Select case when table.City = 'Москва г' then 'г Москва' a esche luchshe 'г. Москва' else table.city end as city
from table 
...
Рейтинг: 0 / 0
Перенос символа из конца ячейки в начало.
    #39685843
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YouIm,

Источник поступления данных может передавать название и тип населённого пункта отдельно? Или давать ссылку на ФИАС?
...
Рейтинг: 0 / 0
Перенос символа из конца ячейки в начало.
    #39685855
Oleg M.Ivanov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
YouIm,
Код: plsql
1.
2.
3.
4.
with t as ( select  'Москва г' as City from dual union 
select  'гор. мОсКвА' as City from dual)
Select case when lower(t.City) like '%москва%' then  'г. Москва' else t.city end as city
from t;
...
Рейтинг: 0 / 0
Перенос символа из конца ячейки в начало.
    #39685864
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Oleg M.Ivanov,

В РФ есть деревня Москва. Кроме того, есть населенные пункты в составе Москвы, наименование которых употребляется в сочетании с 'Москва'.
...
Рейтинг: 0 / 0
Перенос символа из конца ячейки в начало.
    #39685872
Oleg M.Ivanov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
-2-,
ну это чисто как пример разбора "говноданных". На реальной базе можно посмотреть результат разбора и подкорректировать как надо дополнительными фильтрами. В любом случае, тут полу-ручной разбор, пока не наберется нужных правил на все варианты.
...
Рейтинг: 0 / 0
Перенос символа из конца ячейки в начало.
    #39685890
julat21
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YouIm, дальше игра фантазии и реальных данных. Если есть пробелы в конце, если в конце нет г и т.п., то надо придумать условия
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
with t as (
           select 'Москва г' as city from dual union
           select 'Пушкино пос' as city from dual union
           select 'ПерепЕлкинО Защелкино пос.' as city from dual
)
select replace(
               substr(city, 
                      instr(city,' ',-1)+1, 
                      length(city)-instr(city,' ',-1)
                      )
       ,'.','')||
       '. '||
       initcap(
               lower(substr(city , 
                               1 , 
                               instr(city,' ',-1)-1
                            )
                    )
               ) as city
   from t
   
...
Рейтинг: 0 / 0
Перенос символа из конца ячейки в начало.
    #39686082
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YouImКак это можно сделать?

Существуeт Address Cleansing/Validation софт. У нас например используется Trillium. Думаю есть (не бесплатно конечно) подобный софт и для адресов PФ (ни одна страховая компания и даже банк без этого не обойдется).

SY.
...
Рейтинг: 0 / 0
Перенос символа из конца ячейки в начало.
    #39686122
YouIm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо всем за информацию, в принципе в голове что то появилось.
...
Рейтинг: 0 / 0
Перенос символа из конца ячейки в начало.
    #39686127
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SYСуществуeт Address Cleansing/Validation софт. У нас например используется Trillium. Думаю есть (не бесплатно конечно) подобный софт и для адресов PФ
Существует. ФИАС называется.
К сожалению, еще не по всем регионам полон/корректен.
Зато бесплатно и вполне официально :)
...
Рейтинг: 0 / 0
Перенос символа из конца ячейки в начало.
    #39686131
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymous,

У ФИАС есть api для батчевого установления соответствий?
...
Рейтинг: 0 / 0
Перенос символа из конца ячейки в начало.
    #39686140
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
envandrey_anonymous,

У ФИАС есть api для батчевого установления соответствий?
У ФИАС есть возможность выкачать к себе базу и обновлять ее.
http://fias.nalog.ru/Updates.aspx

А там хоть контекстный поиск прикручивайте, хоть черта лысого.
...
Рейтинг: 0 / 0
Перенос символа из конца ячейки в начало.
    #39686143
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymous,

т.е. по сути, логику определения соответствий делать всё равно самостоятельно

Соломон говорит о решениях, которые её уже реализовали и гарантируют NN% соответствия входа результату.
...
Рейтинг: 0 / 0
Перенос символа из конца ячейки в начало.
    #39686168
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
envт.е. по сути, логику определения соответствий делать всё равно самостоятельно
Ммм?
Не надо никакой логики "определения соответствий".
Это ~полная (теоретисски, таксаать) иерархически организованная база адресов, пополнять и обновлять которую по закону обязаны местные администрации, и на которую переводят (опять-таки законом, а кое-кого - и увесистыми пинками) все гос. структуры.
Т.о. никакой супер-логики тут уже не требуется - требуется подобрать наиболее близкий из имеющихся в БД адресов, это не особо сложно и (в случае локальной копии) не создает рисков недоступности сервиса.
На самом сайте ФИАС вполне реализован контекстный поиск - можно и так, наверное, "интегрироваться", если лень собственный контекстный индекс прикрутить.
На крайняк - вероятно, возможно устроить референс-визит в налоговую и договориться о приобретении их варианта контекстного поиска или еще какой форме сотрудничества.
...
Рейтинг: 0 / 0
Перенос символа из конца ячейки в начало.
    #39686181
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymous,

Что такое ФИАС я представляю, и в плане загрузки и в плане работы с этими данными. Но искать там по адресам вида "Москва Ленина 1" - то ещё удовольствие.
...
Рейтинг: 0 / 0
Перенос символа из конца ячейки в начало.
    #39686192
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
envискать там по адресам вида "Москва Ленина 1" - то ещё удовольствие.
Хинт: Попробуйте (как рекомендуют) "Ленина Москва" :) :) :)
...
Рейтинг: 0 / 0
Перенос символа из конца ячейки в начало.
    #39686220
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
envНо искать там по адресам вида "Москва Ленина 1" - то ещё удовольствие.
Собственно, вот буквально на коленке (aaa_fias_addr_full - это только адресные объекты ФИАС, на скорую руку загруженные пентахо кеттлом через лодыря) слепил маленькую иллюстрацию.
(за реальный опыт применения контекстных индексов в коммерческих проектах, поддержку русского языка и т.п. лучше спросить у коллеги "Shtok")
Код: plsql
\r\ncreate table aaa_fias_AO_lines as\r\nwith t(aoguid, keys, aline, atyp)\r\n  as (select aoguid, formalname, shortname||\' \'||formalname, shortname from aaa_fias_addr_full where aolevel=1 and pareNTguid is null and livestatus = 1\r\n       union all\r\n      select c.aoguid, t.keys||\' \'||c.formalname\r\n           , t.aline||\', \'||c.shortname||\' \'||c.formalname\r\n           , c.shortname\r\n        from t, aaa_fias_addr_full c where t.aoguid = c.pareNTguid and c.livestatus = 1\r\n      )\r\nselect *\r\n  from t\r\n;\r\nTable created\r\n\r\nselect count(*) from aaa_fias_AO_lines;\r\n\r\n  COUNT(*)\r\n----------\r\n   1282495\r\n\r\ncreate index aaa_fias_AO_lines$DR on aaa_fias_AO_lines(keys) INDEXTYPE IS ctxsys.context;\r\nIndex created\r\n\r\nset timing on\r\n\r\nselect aoguid, atyp, aline from aaa_fias_AO_lines\r\nwhere contains(keys,\'Ленина AND Москва\', 1) > 0\r\norder by score(1) desc\r\n;\r\n\r\nAOGUID                               ATYP       ALINE\r\n------------------------------------ ---------- --------------------------------------------------------------------------------\r\n0faa0cfa-dfe8-4f5a-a001-2727a41d7f21 ул         г Москва, г Зеленоград, ул Ленина\r\n4350977e-e152-4018-a33d-b13143bbecda ул         г Москва, п Толстопальцево, ул Ленина\r\n7a8015ad-a3eb-4fd0-b4c4-c34ef55bb294 ул         г Москва, п Внуковское, п Мичуринец, ул Ленина\r\nfdbcc75b-1ce8-4eec-b790-33a268df37ab ул         г Москва, п Кокошкино, дп Кокошкино, ул Ленина\r\n427d5fbf-f53c-43ee-a768-48a5cd49caf5 ул         г Москва, п Внуковское, п Минвнешторга, ул Ленина\r\nf168f4da-a379-46df-b4ce-0cf421ad7475 ул         г Москва, п Краснопахорское, с Красная Пахра, ул Ленина\r\n2417419d-a891-41b5-a9c4-7018283d01e3 ул         г Москва, п Внуковское, п дск Мичуринец, ул Ленина\r\n\r\n7 rows selected\r\nExecuted in 0,057 seconds\r\n\r\nselect aoguid, atyp, aline\r\n  from aaa_fias_AO_lines\r\n where contains(keys,\'Москва AND Ленин%\', 1) > 0\r\n order by score(1) desc\r\n;\r\n\r\nAOGUID                               ATYP       ALINE\r\n------------------------------------ ---------- --------------------------------------------------------------------------------\r\nb05ce965-3bb0-4495-87f4-5eed877d3382 ул         г Москва, ул Юных Ленинцев\r\nfdbcc75b-1ce8-4eec-b790-33a268df37ab ул         г Москва, п Кокошкино, дп Кокошкино, ул Ленина\r\n91ab1cb1-d0a4-489c-9182-9dfbabcd9e2b ул         г Москва, ул Лениногорская\r\n9c3e9392-0324-4d21-9cf5-70076f1b5e15 пр-кт      г Москва, пр-кт Ленинградский\r\nc5fec714-04f5-4cb3-89d8-d7cec97116e6 ш          г Москва, ш Ленинградское\r\n62d9bfcb-278d-48e6-ba60-c23e9776d305 ул         г Москва, ул Ленинская Слобода\r\n5f2a1243-a57b-418e-baee-ff76f4993b45 пр-кт      г Москва, пр-кт Ленинский\r\n12bf2472-62ee-4db6-b998-565141e7a9d1 ул         г Москва, ул Ленинские Горы\r\n0faa0cfa-dfe8-4f5a-a001-2727a41d7f21 ул         г Москва, г Зеленоград, ул Ленина\r\n051ce76a-0a0f-4234-a11b-dfa9b85bf6f8 снт        г Москва, п Воскресенское, снт Ленинское Знамя\r\ne703d5fd-4655-48c9-8768-51a3818ebab1 тер        г Москва, п Воскресенское, тер СНТ Ленинское Знамя\r\n4350977e-e152-4018-a33d-b13143bbecda ул         г Москва, п Толстопальцево, ул Ленина\r\n6880778d-fab1-4a86-998e-40d0e2fdffcb тер        обл Ленинградская, р-н Тосненский, пгт Ульяновка, тер 656км а/м дороги Москва-СП\r\n7a8015ad-a3eb-4fd0-b4c4-c34ef55bb294 ул         г Москва, п Внуковское, п Мичуринец, ул Ленина\r\n2417419d-a891-41b5-a9c4-7018283d01e3 ул         г Москва, п Внуковское, п дск Мичуринец, ул Ленина\r\n427d5fbf-f53c-43ee-a768-48a5cd49caf5 ул         г Москва, п Внуковское, п Минвнешторга, ул Ленина\r\nf168f4da-a379-46df-b4ce-0cf421ad7475 ул         г Москва, п Краснопахорское, с Красная Пахра, ул Ленина\r\n87674309-4a67-4fc3-9071-b9c6d70993b7 тер        г Москва, тер Ленинские Горы\r\n\r\n18 rows selected\r\nExecuted in 0,274 seconds\r\n\r\nSQL> \r\n
\r\n
...
Рейтинг: 0 / 0
Перенос символа из конца ячейки в начало.
    #39686279
Фотография Vadim5432
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YouImЕсть столбец City указывается как: 'Москва г'
Нужно вывести 'г Москва', а ещё лучше 'г. Москва.'
Как это можно сделать?

Сделать можно все. Но тут надо сначала бить тех кто придумал форму, что позволяет вводить
города не выбирая их из справочника, потом бить архитектора, желательно ногами, что позволил
такое в продакшн выпустил. Про бить шутка, но я бы очень много высказал таким милым людям.
Скорее всего это какие-то закачанные данные из зловонных луж эксельников и вордов.
Постараться запретить такое раз и навсегда, поставив гильотину, обрубающую голову тем кто будет
еще пытаться просунуть такое.

Или сидеть и копаться, пытаясь автоматизировать бардак. В результате получив автоматизированный бардак.
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Перенос символа из конца ячейки в начало.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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