J'essaie de trier par plusieurs colonnes en SQL et dans des directions différentes. column1
serait trié par ordre décroissant et column2
croissant.
Comment puis-je faire ceci?
sql
sql-order-by
Señor Reginold Francis
la source
la source
Réponses:
Cela trie tout par
column1
(décroissant) d'abord, puis parcolumn2
(croissant, qui est la valeur par défaut) chaque fois que lescolumn1
champs de deux lignes ou plus sont égaux.la source
column1
abord, puis parcolumn2
chaque fois que lescolumn1
champs de deux lignes sont égaux.column2
puis effectue un tri STABLE parcolumn1
. Ceci est plus clair pour les personnes qui savent ce qu'est un tri stable.Les autres réponses manquent d'un exemple concret, alors voici:
Étant donné la table People suivante :
Si vous exécutez la requête ci-dessous:
L'ensemble de résultats ressemblera à ceci:
la source
1.Firstname asc, Lastname desc, yearOfBirst asc and 2.Firstname asc, Lastname desc, yearOfBirst desc
Existe - t-il un moyen de surmonter cela?FirstName, LastName
entrées en double avec distinctYearOfBirth
la source
L'ordre des colonnes multiples dépend des valeurs correspondantes des deux colonnes: voici mon exemple de tableau où se trouvent deux colonnes nommées avec des alphabets et des nombres et les valeurs dans ces deux colonnes sont des ordres asc et desc .
Maintenant, j'exécute Order By dans ces deux colonnes en exécutant la commande ci-dessous:
Maintenant, j'insère de nouvelles valeurs dans ces deux colonnes, où la valeur alphabétique dans l' ordre ASC :
et les colonnes de l'exemple de tableau ressemblent à ceci. Effectuez à nouveau la même opération:
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.
la source
(g, 10),(g,12)
. Ensuite, exécutez votre requête de commande, vous obtenez la deuxième colonne commeASC
commande (cela signifieg-10,g-11,g-12)
Vous pouvez utiliser plusieurs commandes à plusieurs conditions,
la source