Comment puis-je trier par plusieurs colonnes en SQL et dans des directions différentes. column1
serait trié en ordre décroissant, et column2
ascendant.
Ici comment commander soit la colonne1 soit la colonne2 ?
Comment puis-je trier par plusieurs colonnes en SQL et dans des directions différentes. column1
serait trié en ordre décroissant, et column2
ascendant.
@PoliDev, Il ordonne d'abord par colonne1 en ordre DESCendant et ensuite par colonne2 (en ordre ASCendant).
Pour plus de clarté, tout est trié par column1
d'abord et ensuite par column2
chaque fois que le column1
pour deux rangées sont égales.
Les autres réponses manquent d'un exemple concret, alors voilà :
Compte tenu des éléments suivants Personnes 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
Il s'agit d'un bon exemple, beaucoup pensent qu'il est possible de trier deux colonnes à la fois, ce qui n'est pas le cas même si vous mettez deux colonnes dans la requête d'ordre.
Il fournit les mêmes résultats lorsque nous trions avec trois colonnes et que l'ordre de tri de la première colonne est le même et que le reste est différent. Ex : : 1.Firstname asc, Lastname desc, yearOfBirst asc and 2.Firstname asc, Lastname desc, yearOfBirst desc
Y a-t-il un moyen de surmonter cela ?
L'ordre des colonnes multiples dépend des valeurs correspondantes des deux colonnes : Voici mon exemple de table où il y a deux colonnes nommées avec des Alphabets et des Chiffres et les valeurs dans ces deux colonnes sont asc et desc ordres.
Maintenant je fais Commander par dans ces deux colonnes en exécutant la commande ci-dessous :
Maintenant, j'insère à nouveau de nouvelles valeurs dans ces deux colonnes, où la valeur Alphabet en ASC l'ordre :
et les colonnes de la table Exemple ressemblent à ceci. Maintenant, effectuez à nouveau la même opération :
Vous pouvez voir que les valeurs de la première colonne sont dans l'ordre desc mais la deuxième colonne n'est pas dans l'ordre ASC.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.
100 votes
C'EST le premier résultat de "googling answers". En tout cas, c'était le cas quand j'ai cherché "sql ordering by two columns". C'est beaucoup plus lisible que la page de documentation officielle équivalente, qui n'est même pas apparue dans ma première page de résultats jusqu'à ce que je change ma requête en "mysql 'order by'".
17 votes
Étant donné la fréquence à laquelle une question sur le SO arrive en tête de Google, je trouve toujours terrible que les gens y répondent. L'OS est là pour répondre ou non, et je ne comprends pas pourquoi il est bon de détourner le trafic du site.