MS Access 2003 - commande les valeurs de chaîne pour une zone de liste non alphabétique
-
23-09-2019 - |
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!
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.