Сортировка: приоритет русских выражений
От: Peshuha Россия  
Дата: 10.02.11 17:22
Оценка:
Привет Всем!!!

имеем след пример:

declare @t table (nm varchar(10))
insert @t (nm)
select 'Hello' union all
select 'Привет'

select *
from @t
order by 1


Задача: как сделать так, чтобы сортировка была в приоритете русских выражений

Заранее всем спасибо, Илья
... Мы не привыкли отступать! И расколоть его поможет киножурнал "Хочу Все Знать"! ;)
Re: Сортировка: приоритет русских выражений
От: vmpire Россия  
Дата: 10.02.11 17:53
Оценка:
Здравствуйте, Peshuha, Вы писали:

P>Задача: как сделать так, чтобы сортировка была в приоритете русских выражений

Расшифруйте. пожалуйста, "в приоритете русских выражений".
По правилам русского языка?
Выражения должны идти перед отдельными словами?
Русские слова должны быть до всех прочих?
Или что-то ещё?
Re[2]: Сортировка: приоритет русских выражений
От: Peshuha Россия  
Дата: 10.02.11 18:07
Оценка:
Здравствуйте, vmpire, Вы писали:

V>Здравствуйте, Peshuha, Вы писали:


P>>Задача: как сделать так, чтобы сортировка была в приоритете русских выражений

V>Расшифруйте. пожалуйста, "в приоритете русских выражений".
V>По правилам русского языка?
V>Выражения должны идти перед отдельными словами?
V>Русские слова должны быть до всех прочих?
V>Или что-то ещё?


Добрый день!
Хорошо, я не могу сейчас точно сформулировать ответ на ваш вопрос, хотя он, безусловно, оч хороший.
Задача сводится к тому, чтобы среди всех названий объекта выделить русское (если оно есть)

структура таблицы на самом деле такая:

declare @t (cd varchar(10), nm varchar(100))
insert @t (cd, nm)
select 'A', 'name for A' union all
select 'A', 'name2 for A' union all
select 'A', 'название для A' union all
select 'A', 'название для - 2 for A' union all
select 'A', 'name3 for A - русское название для А'


Цель — из всего возможного описания А вывести тот, кот хоть как-то но соотв русскому языку.
В данном случае пока не принципиально будет это 'название для A', 'название для — 2 for A' или 'name3 for A — русское название для А'

Заранее спасибо, Илья
... Мы не привыкли отступать! И расколоть его поможет киножурнал "Хочу Все Знать"! ;)
Re[3]: Сортировка: приоритет русских выражений
От: Peshuha Россия  
Дата: 10.02.11 18:10
Оценка:
Первое, что приходит на ум — это тупой replace всех инорусских составляющих в ничто и order by len(остаток) desc
Но это как-то по-тупому. Хотелось бы более красивого решения
... Мы не привыкли отступать! И расколоть его поможет киножурнал "Хочу Все Знать"! ;)
Re: Сортировка: приоритет русских выражений
От: Lloyd Россия  
Дата: 10.02.11 18:57
Оценка:
Здравствуйте, Peshuha, Вы писали:

P>Задача: как сделать так, чтобы сортировка была в приоритете русских выражений


Если совсем по уму, то тут нужен кастомный виндовый collation для сортировки. Но я не уверен, что это вообще реализуемо, лучше об этом спросить в форуме по WinApi.
Если нужный collation уже есть, то все просто:
...
ORDER BY nm COLLATE 'collation name'
...
Re[4]: Сортировка: приоритет русских выражений
От: Аноним  
Дата: 10.02.11 20:09
Оценка: 1 (1)
Здравствуйте, Peshuha, Вы писали:

P>Первое, что приходит на ум — это тупой replace всех инорусских составляющих в ничто и order by len(остаток) desc

P>Но это как-то по-тупому. Хотелось бы более красивого решения

ORDER BY PATINDEX('%[а-я]%') DESC не помогет? (приведённый код невалиден и является лишь иллюстрацией идеи)
Re[2]: Сортировка: приоритет русских выражений
От: Peshuha Россия  
Дата: 11.02.11 20:15
Оценка:
Здравствуйте, Lloyd, Вы писали:

L>Здравствуйте, Peshuha, Вы писали:


P>>Задача: как сделать так, чтобы сортировка была в приоритете русских выражений


L>Если совсем по уму, то тут нужен кастомный виндовый collation для сортировки. Но я не уверен, что это вообще реализуемо, лучше об этом спросить в форуме по WinApi.

L>Если нужный collation уже есть, то все просто:
L>
L>...
L>ORDER BY nm COLLATE 'collation name'
L>...
L>


Ожидал ответ про коллатион. Правда не знал, что он(рашн коллатион) не существует в готовом виде. Думал просто название дадут и усе
Но все равно — спасибо.
... Мы не привыкли отступать! И расколоть его поможет киножурнал "Хочу Все Знать"! ;)
Re[5]: Сортировка: приоритет русских выражений
От: Peshuha Россия  
Дата: 11.02.11 20:17
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, Peshuha, Вы писали:


P>>Первое, что приходит на ум — это тупой replace всех инорусских составляющих в ничто и order by len(остаток) desc

P>>Но это как-то по-тупому. Хотелось бы более красивого решения

А>ORDER BY PATINDEX('%[а-я]%') DESC не помогет? (приведённый код невалиден и является лишь иллюстрацией идеи)


Хорошая идея, возьму на вооружение. Думаю, что испробую два варианта: "по-тупому" (как описано выше) и ваш.
... Мы не привыкли отступать! И расколоть его поможет киножурнал "Хочу Все Знать"! ;)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.