0Pricing
SQL Academy · Leçon

Trier selon plusieurs colonnes

Départagez les égalités avec des clés de tri secondaires.

Trier selon plusieurs colonnes est une leçon SQL Academy gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage SQL Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours SQL Academy comprend 4 leçons au total.

Le problème des égalités

Lorsque vous triez selon une seule colonne, les lignes ayant la même valeur n'ont pas d'ordre défini entre elles. Trois produits tous vendus à 20 peuvent être renvoyés dans n'importe quel ordre.

Pour rendre l'ordre entièrement prévisible, ajoutez une deuxième clé de tri.

-- Ties on price are ordered arbitrarily
SELECT name, price
FROM products
ORDER BY price;

Lister plusieurs clés de tri

ORDER BY accepte une liste de colonnes séparées par des virgules. La base de données trie selon la première colonne, puis départage les égalités avec la deuxième, et ainsi de suite.

Ici, les produits sont triés selon le prix ; les égalités sont départagées alphabétiquement selon le nom.

SELECT name, price
FROM products
ORDER BY price, name;

L'ordre des clés est important

La séquence des colonnes modifie le résultat. ORDER BY price, name n'est pas équivalent à ORDER BY name, price.

La première clé constitue le tri principal ; les clés suivantes n'interviennent que lorsque les précédentes sont à égalité.

-- Primary sort by category, then by name within each category
SELECT category, name
FROM products
ORDER BY category, name;

Direction propre à chaque colonne

Chaque clé de tri peut avoir sa propre direction. Mélangez librement ASC et DESC.

Cela regroupe les éléments par catégorie dans l'ordre alphabétique, mais affiche d'abord les articles les plus chers à l'intérieur de chaque catégorie.

SELECT category, name, price
FROM products
ORDER BY category ASC, price DESC;

DESC s'applique à chaque colonne

Une erreur fréquente consiste à croire que DESC à la fin inverse tout le tri. Il ne s'applique qu'à la colonne qui le précède directement.

Dans ORDER BY category, price DESC, category reste dans l'ordre croissant ; seul price est dans l'ordre décroissant.

-- category: ASC, price: DESC
SELECT category, price
FROM products
ORDER BY category, price DESC;

Trois clés ou plus

Vous pouvez enchaîner autant de clés de tri que nécessaire. Chacune n'intervient que lorsque toutes les clés précédentes sont égales.

Triez les commandes selon la date, puis le client, puis le total pour un même client et une même date.

SELECT created_at, customer_id, total
FROM orders
ORDER BY created_at DESC, customer_id, total DESC;

Un tri stable et déterministe

Pour obtenir un résultat entièrement déterministe, terminez vos clés de tri par une colonne unique, comme la clé primaire. Ainsi, aucune paire de lignes ne pourra jamais être à égalité.

C'est important pour la pagination, que vous découvrirez dans la prochaine leçon.

SELECT id, name, price
FROM products
ORDER BY price DESC, id;

Mélanger expressions et colonnes

Les clés de tri peuvent combiner des colonnes simples et des expressions. Chaque clé est indépendante.

Cela trie d'abord selon la valeur du stock dans l'ordre décroissant, puis alphabétiquement selon le nom pour départager les égalités.

SELECT name, price, stock
FROM products
ORDER BY price * stock DESC, name ASC;

Trier selon un booléen pour faire remonter un groupe

Une astuce pratique consiste à trier selon une expression booléenne pour placer un groupe en haut ou en bas. Dans PostgreSQL, false est placé avant true.

Cela affiche d'abord les articles en stock (stock > 0), puis les moins chers dans chaque groupe.

SELECT name, stock, price
FROM products
ORDER BY (stock = 0), price;

Contrôler le placement des valeurs NULL

Par défaut dans PostgreSQL, NULL est placé en dernier dans l'ordre croissant et en premier dans l'ordre décroissant. Remplacez ce comportement avec NULLS FIRST ou NULLS LAST sur n'importe quelle clé.

SELECT name, discount
FROM products
ORDER BY discount DESC NULLS LAST;

Assembler le tout

Un tri réaliste à plusieurs clés peut combiner une direction, des expressions et la gestion des valeurs NULL. Lisez-le de gauche à droite : chaque clé affine la précédente.

SELECT category, name, price, rating
FROM products
ORDER BY category ASC,
         rating DESC NULLS LAST,
         price ASC;

Vérification rapide

Considérez ORDER BY category, price DESC.

Récapitulatif

Le tri sur plusieurs colonnes en bref :

  • énumérez les clés de tri en les séparant par des virgules ; les clés précédentes sont prioritaires
  • chaque clé possède son propre ASC/DESC
  • terminez par une colonne unique pour obtenir un ordre déterministe
  • contrôlez les valeurs manquantes avec NULLS FIRST/NULLS LAST

Ensuite, vous limiterez le nombre de lignes renvoyées avec LIMIT et OFFSET.

SELECT category, name, price
FROM products
ORDER BY category ASC, price DESC, id;

Questions Fréquemment Posées

La leçon « Trier selon plusieurs colonnes » est-elle gratuite ?

Oui — le texte complet de « Trier selon plusieurs colonnes » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours SQL Academy, passe à CoddyKit PRO. Le cours SQL Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Trier selon plusieurs colonnes » ?

Départagez les égalités avec des clés de tri secondaires. Tu pratiques SQL Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer SQL Academy ?

Aucune expérience préalable n'est requise. SQL Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.

Combien de temps prend la leçon « Trier selon plusieurs colonnes » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon SQL Academy ?

Oui. Chaque leçon SQL Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Trier avec ORDER BY
  2. Trier selon plusieurs colonnes
  3. LIMIT et OFFSET
  4. Trouver les enregistrements principaux
← Retour à SQL Academy