Гость
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / извлечь определенное слово / 19 сообщений из 19, страница 1 из 1
11.04.2025, 08:24
    #40140558
Ksenia
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
извлечь определенное слово
Помогите, пж
Есть таблица с полем адрес, прописан одной строкой г.Y X район ул.Z и цифры (например г. Екатеринбург Октябрьский район ул. Ленина 65/23
нужно чтобы выводилось
Y
X
Z
цифры
каким образом можно это сделать подскажите пж
...
Рейтинг: 0 / 0
11.04.2025, 09:05
    #40140560
Tosh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
извлечь определенное слово
Ksenia [игнорируется] 
Можно посмотреть в сторону разбора строки по словам как здесь
Останется только придумать что предварительно надо удалить из строки (например предварительным реплейсом "незначащих" последовательностей)

Либо - CLR
...
Рейтинг: 0 / 0
11.04.2025, 09:55
    #40140561
Ksenia
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
извлечь определенное слово
Tosh [игнорируется] 

я новичок в этом деле !!! И чтот я не понимаю как это сделать
...
Рейтинг: 0 / 0
11.04.2025, 13:47
    #40140565
Green2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
извлечь определенное слово
Ksenia  11.04.2025, 08:24
[игнорируется]
Помогите, пж
Есть таблица с полем адрес, прописан одной строкой г.Y X район ул.Z и цифры (например г. Екатеринбург Октябрьский район ул. Ленина 65/23
нужно чтобы выводилось
Y
X
Z
цифры
каким образом можно это сделать подскажите пж
Ещё вопрос. В тексте может попасться произвольный текст, который не по этому формату? Просто руками набили адрес типа "на деревню дедушке"?
...
Рейтинг: 0 / 0
11.04.2025, 17:22
    #40140568
ShIgor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
извлечь определенное слово
Green2 [игнорируется] 

а города и улицы из двух и более слов как будете обрабатывать?
идеальное решение - использовать любой внешний онлайн-сервис, который приведет в порядок ваши адреса с выдачей координат.
если нет денег - то писать такой сервис самому используя открытые адресные базы. КЛАДР (устарел) или ФИАС например.
тупой разбор строки не будет давать требуемой точности.
...
Рейтинг: 0 / 0
14.04.2025, 08:26
    #40140580
Ksenia
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
извлечь определенное слово
ShIgor [игнорируется] 

в таком случае можно убрать только цифры?
...
Рейтинг: 0 / 0
14.04.2025, 10:29
    #40140581
Alex_Toms
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
извлечь определенное слово
Ksenia [игнорируется] 

Добрый день.

Это разовая работа разобрать строку адреса или нужен запрос который будет часто разбирать строку с адресом?
Еще почему то нет индекса.
...
Рейтинг: 0 / 0
14.04.2025, 11:07
    #40140582
Ksenia
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
извлечь определенное слово
Alex_Toms [игнорируется] 

это часто разбирать строку, индекс нужен
...
Рейтинг: 0 / 0
14.04.2025, 11:20
    #40140583
Ksenia
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
извлечь определенное слово
Ksenia [игнорируется] 

я попробовала разбить строку по 'названиям', но не могу вывести нужные

SELECT p,name,DATA FROM (SELECT p,name, Split.a.value('.', 'NVARCHAR(MAX)') AS DATA
FROM
(SELECT peple, id AS p,Name,CAST('<X>'+REPLACE([Address], ',', '</X><X>')+'</X>' AS XML) AS String
FROM [PeopleSet]
) AS A
CROSS APPLY String.nodes('/X') AS Split(a)) AS pop
пытаюсь вывести через
через PATINDEX
показывает все как надо но вырезать не получается
...
Изменено: 14.04.2025, 11:23 - Ksenia
Рейтинг: 0 / 0
14.04.2025, 15:24
    #40140584
ShIgor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
извлечь определенное слово
Ksenia [игнорируется] 

можно. а зачем?
Код: SQL
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
with [таблица] as (
  select cast([id_строки] as int) [id_строки], cast([строка] as nvarchar(50)) [строка]
  from (
    values (1, 'test 12'), (2, '34 test'), (3, 'te56st'), (4, 'te 78 st'), (5, '9 te st 0')
  ) [таблица]([id_строки], [строка] )
),
cts as (
  select
    [id_строки],
    [строка],
    0 as [итерация]
  from
    [таблица]
  where
    [строка] like N'%[0-9]%'
  union all
  select
   cts.[id_строки],
    cast(replace(cts.[строка], nchar([итерация]+48), N'~') as nvarchar(50)) [строка],
    cts.[итерация]+1 [итерация]
  from
    cts
  where
    cts.[итерация]+1 < 11
)
select
  t.[строка] [оригинал], cts.[строка] [результат]
from
  cts
  inner join [таблица] t on t.[id_строки] = cts.[id_строки] and cts.[итерация] = 10
...
Рейтинг: 0 / 0
14.04.2025, 15:36
    #40140585
Дет-Пердет
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
извлечь определенное слово
Ksenia  11.04.2025, 09:55
[игнорируется]
Tosh [игнорируется] 

я новичок в этом деле !!! И чтот я не понимаю как это сделать
Полагаю, что самый быстрый вариант - через постель
...
PaNik:
А по сути вопроса есть что сказать?
Рейтинг: 0 / 0
14.04.2025, 15:52
    #40140586
Green2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
извлечь определенное слово
Ksenia [игнорируется] 

Я думаю, у вас неправильный формат данных. Нельзя такое хранить в одной куче.
Думаю, надо однократно разобрать это по полям, и не пытаться работать с такой таблицей постоянно.

А пока сделать какую нибудь программу для разбора на обычном языке типа C#, разобрать то что можно понять, а непонятое руками набить.
...
Изменено: 14.04.2025, 15:52 - Green2
Рейтинг: 0 / 0
14.04.2025, 16:37
    #40140587
Дет-Пердет
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
извлечь определенное слово
Цитата 
[игнорируется]
<div id="modwarning_moderator_40140585" class="moderator_name">PaNik:</div>
<div id="modwarning_warning_40140585">А по сути вопроса есть что сказать?</div>
Распарсить строку в кучу строк не сложно, можно split_string использовать если не древняя версия sql или json/xml... Здесь основного нет - понимания как парсить.

Было бы например - город и улица разделяются через запятую и в наименовании города нет запятых - просто..
здесь через пробел, но если город из двух слов - типа "Переславль залесский", уйдем на то что первое слово будет городом, второе улицей.
или же ну так вышло в наших данных - сначала улица, а в конце город...
По существу, понятно что есть мусорные данные и хочется какой то процент обработать - где можно вычленить города, улицы... можно как описал, большинство будет норм... но будет и какая то часть с гавном... в общем наверное так и нужно делать и далее валидацию проводить глозами...

ну в тз "г.Y X район ул.Z и цифры (например г. Екатеринбург Октябрьский район ул. Ленина 65/23" ну наверное можно вычленить если с буквы г. стартует это город... если есть слово район то до него будет район или после?, если есть ул. после будет наименование улицы (из одного или больше слов? или "Маяковского улица" - это как интерпретировать?) в общем здесь хуеву гору шаблонов нужно придумывать.... и их может быть бесконечно, нужно на данных сидеть - фиганул один шаблон - ок - пометил обработалось, далее не обработанные данные подбирать шаблон.

Разбить по строкам не сложно - я вот особого смысла просто в этом не вижу
1.png
...
Рейтинг: 0 / 0
14.04.2025, 16:39
    #40140588
Дет-Пердет
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
извлечь определенное слово
Green2  14.04.2025, 15:52
[игнорируется]
Ksenia [игнорируется] 

Я думаю, у вас неправильный формат данных. Нельзя такое хранить в одной куче.
Думаю, надо однократно разобрать это по полям, и не пытаться работать с такой таблицей постоянно.

А пока сделать какую нибудь программу для разбора на обычном языке типа C#, разобрать то что можно понять, а непонятое руками набить.
Я думаю, что ты немного тупо-ват
...
Рейтинг: 0 / 0
15.04.2025, 05:56
    #40140590
Ksenia
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
извлечь определенное слово
ну допустим разбить по строкам и выделить слово начинается с буквы г
...
Рейтинг: 0 / 0
15.04.2025, 08:01
    #40140591
Ksenia
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
извлечь определенное слово
сделано таким образом разбита фраза по словам(но по строкам)
можно сделать так чтобы было все одной строкой

получается
результат.png
...
Изменено: 15.04.2025, 08:05 - Ksenia
Рейтинг: 0 / 0
16.04.2025, 05:34
    #40140603
Ksenia
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
извлечь определенное слово
кто-нибудь может помочь?
...
Рейтинг: 0 / 0
16.04.2025, 06:36
    #40140604
Green2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
извлечь определенное слово
Ksenia  16.04.2025, 05:34
[игнорируется]
кто-нибудь может помочь?
Я бы предложил программу на обычном языке написать. И разбить по КЛАДР.
Оставшиеся строки обработать вручную.
...
Рейтинг: 0 / 0
16.04.2025, 07:09
    #40140605
basename
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
извлечь определенное слово
Ksenia  16.04.2025, 05:34
[игнорируется]
кто-нибудь может помочь?
Цитата 
[игнорируется]
г. Екатеринбург Октябрьский район ул. Ленина 65/23
1. Это нужно обязательно сделать средствами SQL? Или можно выгрузить и распарсить скриптово?
2. Формат всегда такой как в цитате? Или может быть без пробелов, понятно, что там в адресе в одну строку никакой структуризации нет, может добавится корпус, района вообще млжет не быть или что-то в этом духе. Самое важное, какой там формат во всех стркоах, если там писалось как душе угодно, сложно представить, как это распарсить даже скриптово
3. Можете здесь зарегаться, спросить, MSSQL базоёбы, помогите дэвушке! , это параллельный форум, там отсюда людей поболее общается, может быстрее подскажут по делу, но будьте готовы к соответствующей манере общения со стороны местного контингента.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / извлечь определенное слово / 19 сообщений из 19, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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