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

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

Store A     18
Store B     32
Store C     54

Теперь, если я ЗАКАЗАТЬ BY в операторе sql, единственное, что он будет делать, - это убывание или возрастание в алфавитном порядке, но я хочу определенный порядок (только потому, что ОНИ ХОТЯТ ОПРЕДЕЛЕННЫЙ ЗАКАЗ) ..... так что есть ли способ для меня? добавить что-то в SQL, чтобы получить

Store B
Store C
Store A

т.е. в основном строка за строкой, что я хочу. спасибо!

Ответы [ 2 ]

1 голос
/ 31 марта 2010

Вы можете сделать 1 из 2 вещей.

Либо используйте SWITCH stament, что-то вроде

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

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

1 голос
/ 31 марта 2010

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

SELECT sequencer, store_name FROM YourTable ORDER BY sequencer;

В окне списка установите ширину столбца = 0 для столбца sequencer .

Или просто, как @ dscarr предложил , не включать sequencer в список полей SELECT, а просто включить его в ORDER BY ...

SELECT store_name FROM YourTable ORDER BY sequencer;
...