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!

¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top