SQL Cas de Commande Par commande spécifique
Ok, j'ai demandé quelque chose de semblable auparavant, mais j'ai fait des recherches et n'ai pas trouvé cela plus précisément.
J'ai une table que j'ai besoin de trier sur les champs Nomoption(de type NVarChar) et est actif(BIT).
J'ai besoin des résultats dans l'ordre suivant pour un DDL:
Option A
Option B
Option C
Options that are Active, by OptionName ASC
Option D
Options that are Inactive, by OptionName ASC
Pour l'instant j'ai
ORDER BY CASE WHEN PortalName = 'Company, Inc' THEN 0 ELSE 1 END,
CASE WHEN PortalName = 'Setup' THEN 1 ELSE 2 END,
CASE WHEN PortalName = 'Daily Routine' THEN 2 ELSE 3 END,
CASE WHEN IsActive = 1 THEN 3 ELSE 4 END,
CASE WHEN PortalName = 'Master Option' THEN 4 ELSE 5 END,
PortalName ASC
Mais cela renvoie les résultats comme suit:
Option A
Option B
Option C
Option D
Options that are Active, by OptionName ASC
Options that are Inactive, by OptionName ASC
Toute aide serait super!
Obtenu une réponse: le CAS LORSQUE PortalName = 'Master Option" PUIS 9999 AUTRE EXTRÉMITÉ 5
OriginalL'auteur NJohns | 2012-11-02
Vous devez vous connecter pour publier un commentaire.
essayer,
Essayez d'échanger
WHEN IsActive = 1
etWHEN PortalName = 'Master Option'
(ensemble de lignes) dans cette solution.OriginalL'auteur John Woo
examiner chaque partie de la commande par un autre de la colonne... Appliquer un cas à chaque composant. Obtenir la première partie de la première... puis la deuxième partie. Si elle ne s'applique pas à la deuxième partie, il a toujours la même valeur... quelque chose comme...
OriginalL'auteur DRapp
Obtenu une réponse: le CAS LORSQUE PortalName = 'Master Option" PUIS 9999 AUTRE EXTRÉMITÉ 5
OriginalL'auteur NJohns