MS Access 2003 - упорядочивание строковых значений для списка не в алфавитном порядке

StackOverflow https://stackoverflow.com/questions/2548273

Вопрос

Вот глупый вопрос.Допустим, у меня есть запрос, который выдает для окна списка, и он выдает значения для трех хранилищ

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);

Или используйте вторичную таблицу заказов, в которой хранятся значения названий магазинов и порядок по значению.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top