Domanda

Qui è una domanda stupida. Diciamo che ho una query che produce per una casella di riepilogo, e produce valori per tre negozi

Store A     18
Store B     32
Store C     54

Ora, se io ORDER BY nell'istruzione SQL l'unica cosa che farà è discendente o ascendente in ordine alfabetico ma voglio un certo ordine (solo perché vogliono un certo ordine) ..... così c'è un modo per me per aggiungere qualcosa alla SQL per ottenere

Store B
Store C
Store A

vale a dire. fondamentalmente riga per riga quello che voglio. grazie!

È stato utile?

Soluzione

Aggiungere un campo numerico, sequencer , la tabella che contiene i nomi dei negozi. Utilizzare il sequencer valori per determinare il vostro ordinamento.

SELECT sequencer, store_name FROM YourTable ORDER BY sequencer;

Nella casella di riepilogo, impostare la larghezza della colonna = 0 per il sequencer colonna.

O semplicemente, come @ dscarr suggerito , non includere sequencer nell'elenco dei campi SELECT, ma basta includerlo nel ORDER BY ...

SELECT store_name FROM YourTable ORDER BY sequencer;

Altri suggerimenti

Si può fare 1 di 2 cose.

Utilizzare un rel="nofollow INTERRUTTORE stament, qualcosa come

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

In alternativa, utilizzare una tabella secondaria ordine, che memorizza i valori dei nomi dei negozi, e un ordine per valore.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top