Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Выделение отдельных присутствующих в запросе  [new]
Aleksey br
Member

Откуда:
Сообщений: 76
Добрый день. есть ли в MS SQL возможность при поиске в ячейке переходить от одного символа к третьему, если второго искомого символа между ними нет? К примеру, есть у меня адреса:
ADDRESS
Сумская обл.; Конотопский р-н; город Конотоп; улица Ананьева; дом.12 кв.9; инд.41600;
Сумская обл.; город Конотоп; улица Ананьева; дом.12 кв.9; інд.41600;
город Конотоп; улица Ананьева; до м.12 кв.9; инд.41600


ввиду того, что сокращений в адресах много (обл., дом.,д., кварт., ул., пр.,просп.,пр-т., и прочее) - я их заменил на соответствующие им символы
Пример

ADDRESS
Сумская # Конотопский & <Конотоп [Ананьева ] 12 {9}41600
Сумская #<Конотоп [Ананьева ] 12 {9}41600
Конотопский & [Ананьева ] 12 {9}41600

Ввиду того, что не везде одинаковый набор информации - можно ли как-то автоматизировать запрос по выделению отдельных ПРИСУТСТВУЮЩИХ в ячейке компонентов адреса
 SELECT     address 
		, substring (address,0,patindex('%#%',address) ) oblast
		, substring (address, patindex('%#%',address)+1 ,patindex('%&%',address)-patindex('%#%',address)+2)
from #ADDRESS_cleaning 
1 апр 17, 19:53    [20357345]     Ответить | Цитировать Сообщить модератору
 Re: Выделение отдельных присутствующих в запросе  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
В MSSQL нет ячеек.
А если нормализовать данные, то и извращаться нужда пропадает.
1 апр 17, 20:28    [20357398]     Ответить | Цитировать Сообщить модератору
 Re: Выделение отдельных присутствующих в запросе  [new]
Aleksey br
Member

Откуда:
Сообщений: 76
Гавриленко Сергей Алексеевич,

от исторических данных никуда не денешься...
1 апр 17, 21:01    [20357445]     Ответить | Цитировать Сообщить модератору
 Re: Выделение отдельных присутствующих в запросе  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31993
Aleksey br
есть ли в MS SQL возможность при поиске в ячейке переходить от одного символа к третьему, если второго искомого символа между ними нет?
Нет.
Да и вообще, это сложно в любом языке делать, если без специальных библиотек.
Используйте RegExp, в нём такое будет делать намного проще; поищите, есть примитивные сборки CLR с ним.
1 апр 17, 21:03    [20357450]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить