MS Access 2003 - ordenar los valores de cadena para un cuadro de lista no alfabético
-
23-09-2019 - |
Pregunta
Esta es una pregunta tonta. Digamos que tengo una consulta que produce un cuadro de lista, y produce valores para tres tiendas
Store A 18
Store B 32
Store C 54
Ahora si ORDER BY en la instrucción SQL lo único que hará es descendente o ascendente alfabéticamente pero quiero un cierto orden (sólo porque quieren un pedido de ciertas) ..... así que hay una manera para mí añadir algo al SQL para obtener
Store B
Store C
Store A
es decir. básicamente, fila por fila lo que quiero. gracias!
Solución
Añadir un campo numérico, secuenciador , a la tabla que contiene los nombres de las tiendas. Utilice el secuenciador valores para determinar el orden de clasificación.
SELECT sequencer, store_name FROM YourTable ORDER BY sequencer;
En el cuadro de lista, fijar el ancho de columna = 0 para el secuenciador columna.
O, simplemente, como @ dscarr sugerido , no incluya secuenciador en la lista de campos SELECT
, pero sólo se incluyen en el ORDER BY
...
SELECT store_name FROM YourTable ORDER BY sequencer;
Otros consejos
Se puede hacer 1 de 2 cosas.
O bien utilizar un INTERRUPTOR stament , algo así como
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);
O utilizar una tabla de orden secundario, que almacena los valores de los nombres de las tiendas, y una orden por valor.