Question

Voici une question idiote. Disons que j'ai une requête qui produit pour une zone de liste, et il produit des valeurs pour trois magasins

Store A     18
Store B     32
Store C     54

Maintenant, si j'ORDER BY dans l'instruction sql la seule chose qu'il va faire est par ordre alphabétique par ordre croissant ou descendant, mais je veux un certain ordre (seulement parce qu'ils veulent ORDONNANCE CERTAINS) ..... donc est-il un moyen pour moi d'ajouter quelque chose à SQL pour obtenir

Store B
Store C
Store A

i.e.. essentiellement ligne par ligne ce que je veux. merci!

Était-ce utile?

La solution

Ajouter un champ numérique, séquenceur , à la table qui contient les noms des magasins. Utilisez le séquenceur valeurs pour déterminer votre ordre de tri.

SELECT sequencer, store_name FROM YourTable ORDER BY sequencer;

Dans la boîte de liste, définir la largeur de la colonne = 0 pour le séquenceur colonne.

Ou simplement, comme @ dscarr suggéré , ne comprennent pas séquenceur dans la liste des champs de SELECT, mais il suffit d'inclure dans le ORDER BY ...

SELECT store_name FROM YourTable ORDER BY sequencer;

Autres conseils

Vous pouvez faire 1 de 2 choses.

Soit utiliser un MISE stament, quelque chose comme

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

Ou utiliser un tableau de commande secondaire, qui stocke les valeurs des noms de magasins, et une commande par valeur.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top