Partager via


Tri de lignes

Mise à jour : novembre 2007

Il est possible de choisir l'ordre des lignes qui apparaîtront dans le résultat d'une requête. C'est-à-dire que vous pouvez indiquer dans quelle colonne, ou dans quel ensemble de colonnes, les valeurs seront triées pour déterminer l'ordre d'affichage des lignes dans l'ensemble des résultats.

Remarque :

L'ordre de tri est déterminé en partie par la séquence de classement de la colonne. Vous pouvez la modifier dans la boîte de dialogue Classement.

Il existe différentes façons de trier les résultats de la requête :

  • Vous pouvez demander à trier les lignes en ordre croissant ou décroissant   Par défaut, SQL se réfère aux colonnes de la clause ORDER BY pour trier les lignes selon un ordre croissant ou décroissant. Par exemple, pour trier les titres des livres par ordre croissant de prix, il suffit de trier les lignes selon la colonne du prix. L'instruction SQL obtenue peut se présenter de la manière suivante :

    SELECT *
    FROM titles
    ORDER BY price
    

    Cependant, si vous souhaitez faire apparaître les livres les plus chers en premier, vous pouvez demander un tri décroissant selon le prix. Dans ce cas, vous devez indiquer que les lignes obtenues dans l'ensemble des résultats devront être triées selon la colonne du prix et en ordre décroissant. L'instruction SQL obtenue peut se présenter de la manière suivante :

    SELECT *
    FROM titles
    ORDER BY price DESC
    
  • Vous pouvez demander un tri sur plusieurs colonnes   Par exemple, il est possible de demander un ensemble de résultats montrant une ligne par auteur et trié selon l'état, puis la ville. L'instruction SQL obtenue peut se présenter de la manière suivante :

    SELECT *
    FROM authors 
    ORDER BY state, city
    
  • Vous pouvez demander un tri selon des colonnes qui n'apparaîtront pas dans l'ensemble des résultats   Par exemple, l'ensemble des résultats présentera les livres les plus chers en premier, mais sans faire apparaître les prix. L'instruction SQL obtenue peut se présenter de la manière suivante :

    SELECT title_id, title
    FROM titles
    ORDER BY price DESC
    
  • Vous pouvez trier selon des colonnes dérivées   Par exemple, dans l'ensemble des résultats, chaque ligne contiendra le titre d'un livre et les livres les plus rentables à l'unité seront présentés en premier. L'instruction SQL obtenue peut se présenter de la manière suivante :

    SELECT title, price * royalty / 100 as royalty_per_unit
    FROM titles
    ORDER BY royalty_per_unit DESC
    

    (La formule calculant la rentabilité à l'unité de chaque livre est en gras.)

    Pour calculer une colonne dérivée, vous pouvez utiliser une syntaxe SQL (comme dans l'exemple précédent) ou une fonction définie par l'utilisateur qui retourne une valeur scalaire. Pour plus d'informations sur les fonctions définies par l'utilisateur, consultez la documentation SQL Server.

  • Vous pouvez trier des lignes groupées   Par exemple, dans l'ensemble des résultats, chaque ligne contiendra une ville et le nombre d'auteurs y résidant — les villes où résident le plus d'auteurs apparaîtront en premier. L'instruction SQL obtenue peut se présenter de la manière suivante :

    SELECT city, state, COUNT(*)
    FROM authors
    GROUP BY city, state
    ORDER BY COUNT(*) DESC, state 
    

    Remarquez que la requête utilise state comme colonne secondaire du tri. De cette manière, si deux états ont le même nombre d'auteurs, vous pouvez les faire apparaître en ordre alphabétique.

  • Vous pouvez demander un tri selon des données internationales   C'est-à-dire que vous pouvez trier une colonne selon des conventions de classement qui diffèrent des conventions utilisées par défaut pour cette colonne. Par exemple, une requête pourrait demander à récupérer tous les titres signés par Jaime Patiño. Pour afficher les titres en ordre alphabétique, vous demanderez à appliquer à la colonne des titres une table de classement espagnole. L'instruction SQL obtenue peut se présenter de la manière suivante :

    SELECT title
    FROM 
        authors 
        INNER JOIN 
            titleauthor 
            ON authors.au_id 
            =  titleauthor.au_id 
            INNER JOIN
                titles 
                ON titleauthor.title_id 
                =  titles.title_id 
    WHERE 
         au_fname = 'Jaime' AND 
         au_lname = 'Patiño'
    ORDER BY 
         title COLLATE SQL_Spanish_Pref_CP1_CI_AS
    

Pour plus d'informations, consultez Comment : utiliser le Concepteur de requêtes et de vues avec des données internationales. Pour plus d'informations sur le tri des résultats, consultez Tri et regroupement des résultats de la requête.

Voir aussi

Autres ressources

Tri et regroupement des résultats de la requête

Conception de requêtes et vues