Возможно ли отсортировать по произвольной таблице ?

Tazoth
Дата: 15.10.2003 14:23:49
Имеется выборка или колонка таблицы, содержащая строки. можно ли эти строки отсортировать по другим правилам, нежели сортировка по умолчанию. К примеру чтобы буква К была впереди буквы А ? Правила сортировки заданы в таблице.
iSestrin
Дата: 15.10.2003 14:31:44
можно конечно сделать функцию, которая разберет твою строку по табличке сортировки, и сортировать по этой ф-и, но ой какие это будут недецкие тормоза...

лучший вариант в таких случаях - добавление спец. цифровой колонки для сортировки, которую заполняют лапками, ну или триггером по твоей таблице сортировки, если ввод обычный (не быстрый с какого-то дивайса), то приемлемо будет
Tasoth
Дата: 15.10.2003 14:48:52
Понятно. Проблема вообще в следующем :
Сортировка SQL сервера чуть отличается от принятой в 1С:
----------------------------------------------------------------
Сотрировка 1С Сортировка SQL
A-HA Headlines and Deadlins. Best ABBA The Definitive Collection
A-HA Live at vallha. Homecoming AC/DC Stiff Upper Lip
ABBA The Definitive Collection A-HA Headlines and Deadlins. Best
AC/DC Stiff Upper Lip A-HA Live at vallha. Homecoming
-----------------------------------------------------------------
Как исправить это ?
-------
к тому же 1С зачем то на сервере создает таблицу, называющуюся "ордер" и содержащую фактически таблицу сортировки. Только как они ей пользуются не вижу и додуматься не могу.
Tazoth
Дата: 15.10.2003 14:51:31
Сотрировка 1С
A-HA Headlines and Deadlins. Best
A-HA Live at vallha. Homecoming
ABBA The Definitive Collection
AC/DC Stiff Upper Lip
-----------------------------------------------------------------
Сортировка SQL
ABBA The Definitive Collection
AC/DC Stiff Upper Lip
A-HA Headlines and Deadlins. Best
A-HA Live at vallha. Homecoming
Glory
Дата: 15.10.2003 14:52:51
Из вашего примера непонято(не видно) что там у вас не правильно сортируется.
Кроме того "сортировка" и "упорядочивание" лично для меня все-таки разные вещи, особенно в контексте mssql.
Что значит сортировка применительно к 1С
Tazoth
Дата: 15.10.2003 15:10:54
Сортировка ? Я так думаю, что это упорядочивание чего либо, в нашем случае строк, по каким либо правилам.
Вот и в 4-ом посте видно, что 1С считает знак "-" меньше, чем букву "В". Тогда как SQL сервер считает наоборот.
А чем отличаются сортировка от упорядочивания ?
Glory
Дата: 15.10.2003 15:18:10
Упорядочиваени в MSSQL это использование в запросе предложения ORDER BY
А сортировка(вернее правила сортировки) - это каким образом сервер будет определять скажем для символьных полей вес каждого символа.

Так вот отсюда и вопрос - как в 1С задется именно то, что что-там надо выводить в определенном порядке ?
Tazoth
Дата: 15.10.2003 15:37:35
С 1С ситуация такая : сортирует она внутри себя. Т.е. вытаскивая данные на клиента и лопатя их уже там.
Однако при старте зачем то на сервере создается табличка "order" содержащая символы в порядке сортировки.
-------
Собственно вопрос вот в чем :
1. Какой порядок сортировки должен иметь сервер чтобы символы с кодами меньше букв (в частности "-") имели меньший вес, чем буквы ?
2. Можно ли задать порядок сортировки сервера таблицей ?
3. Можно ли задать порядок упорядочивания таблицей ?
Glory
Дата: 15.10.2003 19:54:20
Хм, вообще пример
Сотрировка 1С
A-HA Headlines and Deadlins. Best
A-HA Live at vallha. Homecoming
ABBA The Definitive Collection
AC/DC Stiff Upper Lip
-----------------------------------------------------------------
Сортировка SQL
ABBA The Definitive Collection
AC/DC Stiff Upper Lip
A-HA Headlines and Deadlins. Best
A-HA Live at vallha. Homecoming


у меня лично вызывает ощущения что символьные строки просто упорядочены по убыванию и сортировка тут непричем

declare @t table (f1 varchar(100))


insert @t select 'A-HA Headlines and Deadlins. Best'
union select 'A-HA Live at vallha. Homecoming'
union select 'ABBA The Definitive Collection'
union select 'AC/DC Stiff Upper Lip'

select * from @t order by f1 desc

select * from @t order by f1 asc
Tazoth
Дата: 16.10.2003 18:49:06
Glory писал:

у меня лично вызывает ощущения что символьные строки просто упорядочены по убыванию

Остроумно :-) Но к сожалению, это только выдержка из большой выборки, которая различается только порядком следования этих четырех строк из примера.
---
Вообще говоря 1С упорядочивает символы по их "весу", что вроде бы соответствует сортировки "binary" SQL сервера, но для подключения 1С требует Case Insensetive, что не возможно для Binary. Вот такой заколдованный круг.
---
Как Вы считаете, эту проблему можно как то решить ?