Partager via


Trier les lignes (Visual Database Tools)

s’applique à : SQL Server

Vous pouvez classer les lignes dans un résultat de requête. Autrement dit, vous pouvez nommer une colonne ou un ensemble particulier de colonnes dont les valeurs déterminent l’ordre des lignes dans le jeu de résultats.

Remarque

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

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

  • Vous pouvez organiser des lignes dans l’ordre croissant ou décroissant Par défaut, SQL utilise les colonnes order-by pour organiser les lignes dans l’ordre croissant. Par exemple, pour organiser les titres du livre par ordre croissant, triez simplement les lignes par la colonne de prix. Le code SQL résultant peut ressembler à ceci :

    SELECT *  
    FROM titles  
    ORDER BY price  
    

    En revanche, si vous souhaitez trier les titres avec les livres les plus chers en premier, vous pouvez spécifier explicitement un classement par ordre décroissant. Autrement dit, vous indiquez que les lignes de résultat doivent être organisées par des valeurs décroissantes de la colonne de prix. Le code SQL résultant peut ressembler à ceci :

    SELECT *  
    FROM titles  
    ORDER BY price DESC  
    
  • Vous pouvez trier par plusieurs colonnes Par exemple, vous pouvez créer un jeu de résultats avec une ligne pour chaque auteur, en triant d’abord par état, puis par ville. Le code SQL résultant peut ressembler à ceci :

    SELECT *  
    FROM authors   
    ORDER BY state, city  
    
  • Vous pouvez trier par colonnes qui n’apparaissent pas dans le jeu de résultats Par exemple, vous pouvez créer un jeu de résultats avec les titres les plus chers en premier, même si les prix n’apparaissent pas. Le code SQL résultant peut ressembler à ceci :

    SELECT title_id, title  
    FROM titles  
    ORDER BY price DESC  
    
  • Vous pouvez trier par colonnes dérivées Par exemple, vous pouvez créer un jeu de résultats dans lequel chaque ligne contient un titre de livre , avec les livres qui paient la redevance la plus élevée par copie apparaissant en premier. Le code SQL résultant peut ressembler à ceci :

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

    (La formule pour calculer la redevance que chaque livre gagne par copie est mise en évidence.)

    Pour calculer une colonne dérivée, vous pouvez utiliser la syntaxe SQL, comme dans l’exemple précédent, ou utiliser 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 ; vous pouvez créer un jeu de résultats dans lequel chaque ligne décrit une ville, ainsi que le nombre d’auteurs de cette ville , avec les villes contenant de nombreux auteurs apparaissant en premier. Le code SQL résultant peut ressembler à ceci :

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

    Notez que la requête utilise state comme colonne de tri secondaire. Par conséquent, si deux états ont le même nombre d’auteurs, ces états apparaissent dans l’ordre alphabétique.

  • Vous pouvez trier à l’aide de données internationales C’est-à-dire ; vous pouvez trier une colonne à l’aide de conventions de classement qui diffèrent des conventions par défaut pour cette colonne. Par exemple, vous pouvez écrire une requête qui récupère tous les titres du livre par Jaime Patiño. Pour afficher les titres par ordre alphabétique, vous utilisez une séquence de classement espagnole pour la colonne de titre. Le code SQL résultant peut ressembler à ceci :

    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  
    

Voir aussi

trier et regrouper les résultats des requêtes (Visual Database Tools)
Comment concevoir des requêtes et des vues : Sujets pratiques (Outils de base de données visuels)