Здравствуйте, Peshuha, Вы писали:
P>Задача: как сделать так, чтобы сортировка была в приоритете русских выражений
Расшифруйте. пожалуйста, "в приоритете русских выражений".
По правилам русского языка?
Выражения должны идти перед отдельными словами?
Русские слова должны быть до всех прочих?
Или что-то ещё?
Здравствуйте, 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 — русское название для А'
Заранее спасибо, Илья
... Мы не привыкли отступать! И расколоть его поможет киножурнал "Хочу Все Знать"! ;)
Первое, что приходит на ум — это тупой replace всех инорусских составляющих в ничто и order by len(остаток) desc
Но это как-то по-тупому. Хотелось бы более красивого решения
... Мы не привыкли отступать! И расколоть его поможет киножурнал "Хочу Все Знать"! ;)
Здравствуйте, Peshuha, Вы писали:
P>Задача: как сделать так, чтобы сортировка была в приоритете русских выражений
Если совсем по уму, то тут нужен кастомный виндовый collation для сортировки. Но я не уверен, что это вообще реализуемо, лучше об этом спросить в форуме по WinApi.
Если нужный collation уже есть, то все просто:
Здравствуйте, Peshuha, Вы писали:
P>Первое, что приходит на ум — это тупой replace всех инорусских составляющих в ничто и order by len(остаток) desc P>Но это как-то по-тупому. Хотелось бы более красивого решения
ORDER BY PATINDEX('%[а-я]%') DESC не помогет? (приведённый код невалиден и является лишь иллюстрацией идеи)
Здравствуйте, Lloyd, Вы писали:
L>Здравствуйте, Peshuha, Вы писали:
P>>Задача: как сделать так, чтобы сортировка была в приоритете русских выражений
L>Если совсем по уму, то тут нужен кастомный виндовый collation для сортировки. Но я не уверен, что это вообще реализуемо, лучше об этом спросить в форуме по WinApi. L>Если нужный collation уже есть, то все просто: L>
L>...
L>ORDER BY nm COLLATE 'collation name'
L>...
L>
Ожидал ответ про коллатион. Правда не знал, что он(рашн коллатион) не существует в готовом виде. Думал просто название дадут и усе
Но все равно — спасибо.
... Мы не привыкли отступать! И расколоть его поможет киножурнал "Хочу Все Знать"! ;)
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, Peshuha, Вы писали:
P>>Первое, что приходит на ум — это тупой replace всех инорусских составляющих в ничто и order by len(остаток) desc P>>Но это как-то по-тупому. Хотелось бы более красивого решения
А>ORDER BY PATINDEX('%[а-я]%') DESC не помогет? (приведённый код невалиден и является лишь иллюстрацией идеи)
Хорошая идея, возьму на вооружение. Думаю, что испробую два варианта: "по-тупому" (как описано выше) и ваш.
... Мы не привыкли отступать! И расколоть его поможет киножурнал "Хочу Все Знать"! ;)