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

Откуда:
Сообщений: 5
Подскажите, какие параметры использовать (и как?) при сравнении строк для того, что бы получить результат:
Й=и,
Ё=е,
Пробелы не учитываются
Реестр не учитывается

Или хотя бы где можно про это почитать, нашел статью, в которой вроде бы описываются параметры сравнения, но непонятно как их применить :(
[url=]http://msdn.microsoft.com/en-us/library/ms141038(v=sql.100).aspx
[/url]
24 окт 14, 14:51    [16754226]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение строк  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7868
arsen123
Й=и,
Ё=е

Это решается настройками параметров сортировки. Читайте справку о параметре COLLATE.
24 окт 14, 15:17    [16754437]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение строк  [new]
arsen123
Member

Откуда:
Сообщений: 5
Владислав Колосов
arsen123
Й=и,
Ё=е

Это решается настройками параметров сортировки. Читайте справку о параметре COLLATE.


нашел единственное подходящее - COLLATE Cyrillic_General_CI_AI, и регистр не учитывает и Ё-е не различает, но "Й" все равно не равно "и"
24 окт 14, 15:23    [16754494]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение строк  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 4804
arsen123
Владислав Колосов
пропущено...

Это решается настройками параметров сортировки. Читайте справку о параметре COLLATE.


нашел единственное подходящее - COLLATE Cyrillic_General_CI_AI, и регистр не учитывает и Ё-е не различает, но "Й" все равно не равно "и"


А строк много? Они длинные? Может столбец со значением HASHBYTES('MD5', REPLACE(REPLACE(REPLACE(REPLACE(s, 'й', 'и'), 'Й', 'И'), 'ё', 'е'), 'Ё', 'е')) к ним добавить и сравнивать по нему?
24 окт 14, 19:10    [16755923]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение строк  [new]
arsen123
Member

Откуда:
Сообщений: 5
a_voronin,
Да, так и сделал. Но решение конечно не оптимальное. Наткнулся в одной теме на использование Like для получения приемлимого результата.
автор
select ... where MyField LIKE "Корабл[её]в%"

Попробую позже такую конструкцию применить

з.ы. строк около 5 тысяч.
25 окт 14, 08:52    [16757699]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение строк  [new]
aleks2
Guest
arsen123
a_voronin,
Да, так и сделал. Но решение конечно не оптимальное. Наткнулся в одной теме на использование Like для получения приемлимого результата.
автор
select ... where MyField LIKE "Корабл[её]в%"

Попробую позже такую конструкцию применить

з.ы. строк около 5 тысяч.


Не смешите.
В таком случае строки просто нормализуются. Т.е. фсе символы "Й заменяются на и".

Причем не обязательно нормализовать исходные строки - достаточно сделать нормализованную копию и искать по ней.
25 окт 14, 10:26    [16757757]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение строк  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 4804
aleks2
Причем не обязательно нормализовать исходные строки - достаточно сделать нормализованную копию и искать по ней.

А я разве не предлагал сделать именно это. PERSISTED вычисляемое поле
27 окт 14, 14:09    [16763498]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить