MS Access 2003 - упорядочивание строковых значений для списка не в алфавитном порядке
-
23-09-2019 - |
Вопрос
Вот глупый вопрос.Допустим, у меня есть запрос, который выдает для окна списка, и он выдает значения для трех хранилищ
Store A 18
Store B 32
Store C 54
Теперь, если я УПОРЯДОЧУ BY в инструкции sql, единственное, что он будет делать, это по убыванию или возрастанию в алфавитном порядке, но я хочу определенный порядок (только потому, что они ХОТЯТ ОПРЕДЕЛЕННЫЙ ПОРЯДОК) ..... итак, есть ли у меня способ добавить что-то в SQL, чтобы получить
Store B
Store C
Store A
т. е.в основном, строка за строкой то, что я хочу.Спасибо!
Решение
Добавьте числовое поле, секвенсор, в таблицу, содержащую названия магазинов.Используйте секвенсор значения для определения вашего порядка сортировки.
SELECT sequencer, store_name FROM YourTable ORDER BY sequencer;
В поле списка установите ширину столбца = 0 для секвенсор колонна.
Или просто, как @dscarr предложил, не включают секвенсор в SELECT
список полей, но просто включите его в ORDER BY
...
SELECT store_name FROM YourTable ORDER BY sequencer;
Другие советы
Вы можете сделать 1 из 2 вещей.
Либо используйте ПЕРЕКЛЮЧАТЕЛЬ напряжение, что-то вроде
SELECT Table1.Store,
Table1.Val,
Switch([Store]="StoreB",1,[Store]="StoreC",2,[Store]="StoreA",3) AS Expr1
FROM Table1
ORDER BY Switch([Store]="StoreB",1,[Store]="StoreC",2,[Store]="StoreA",3);
Или используйте вторичную таблицу заказов, в которой хранятся значения названий магазинов и порядок по значению.