Question Classement SQL sur plusieurs colonnes


J'essaie de trier par plusieurs colonnes dans SQL, et dans des directions différentes. column1 serait trié en ordre décroissant, et column2 Ascendant.

Comment puis-je faire ceci?


492
2018-01-12 18:02


origine


Réponses:


ORDER BY column1 DESC, column2

Cela trie tout par column1 (descendant) d'abord, puis par column2 (croissant, qui est la valeur par défaut) chaque fois que les champs column1 pour deux ou plusieurs lignes sont égaux.


799
2018-01-12 18:03



Les autres réponses manquent d'un exemple concret, alors voilà:

Compte tenu des éléments suivants Gens table:

 FirstName |  LastName   |  YearOfBirth
----------------------------------------
  Thomas   | Alva Edison |   1847
  Benjamin | Franklin    |   1706
  Thomas   | More        |   1478
  Thomas   | Jefferson   |   1826

Si vous exécutez la requête ci-dessous:

SELECT * FROM People ORDER BY FirstName DESC, YearOfBirth ASC

Le jeu de résultats ressemblera à ceci:

 FirstName |  LastName   |  YearOfBirth
----------------------------------------
  Thomas   | More        |   1478
  Thomas   | Jefferson   |   1826
  Thomas   | Alva Edison |   1847
  Benjamin | Franklin    |   1706

284
2018-01-18 23:48



SELECT  *
FROM    mytable
ORDER BY
        column1 DESC, column2 ASC

122
2018-01-12 18:04



L'ordre des colonnes multiples dépend des valeurs correspondantes des deux colonnes: Voici mon exemple de tableau où deux colonnes sont nommées avec Alphabets and Numbers et les valeurs de ces deux colonnes sont asc et desc ordres.

enter image description here

Maintenant, je joue Commandé par dans ces deux colonnes en exécutant la commande ci-dessous:

enter image description here

Maintenant encore, j'insère de nouvelles valeurs dans ces deux colonnes, où la valeur Alphabet dans ASC commande:

enter image description here

et les colonnes de l'exemple de tableau ressemblent à ceci. Maintenant, effectuez la même opération:

enter image description here

Vous pouvez voir que les valeurs dans la première colonne sont dans l'ordre desc, mais la deuxième colonne n'est pas dans l'ordre ASC.


12
2017-12-08 05:11



Vous pouvez utiliser plusieurs commandes sur plusieurs conditions,

ORDER BY 
     (CASE 
        WHEN @AlphabetBy = 2  THEN [Drug Name]
      END) ASC,
    CASE 
        WHEN @TopBy = 1  THEN [Rx Count]
        WHEN @TopBy = 2  THEN [Cost]
        WHEN @TopBy = 3  THEN [Revenue]
    END DESC 

3
2018-02-03 11:35