Top clause dans sql server avec les exemples

feature-sql1

La plupart du temps dans la vie réelle, nous essayons de trouver les trois meilleurs scores dans une classe, les cinq meilleurs coureurs dans un marathon, ou les 10 premiers objectifs du mois. SQL Server dispose d`une fonction pour sélectionner le TOP n enregistrements d`une table.

Nous pouvons récupérer le TOP n enregistrements d`une table sans utiliser une clause WHERE. TOP peut également être utilisé avec les instructions DML telles que Update et Delete. La plupart du temps, TOP est utilisé avec une clause ORDER BY pour trier les résultats d`abord en ordre croissant ou décroissant, puis chercher le TOP n enregistrements. Une clause order by avec TOP fait en sorte que nous avons trié les données d`une table.

TOP est utilisé comme un limiteur de ligne dans SQL Server comme LIMIT dans Mysql.

Jetons un coup d`oeil à un exemple de TOP utilisé dans une table.

Créer un tableau SSCResults (Id INT IDENTITY (1,1) PRIMARY KEY, Nom VARCHAR (100), Note NUMERIC (18,2)) - INSERT INTO SSCResults VALUES ( `Shailesh A`, 98,0) -INSERER EN SSCResults VALUES ( `Atul K `, 90,0) -INSERER EN SSCResults VALUES (` Vishal P `, 89,0) -INSERER EN SSCResults VALUES (` Naryan N `, 88,0) -INSERER EN SSCResults VALUES (` Rohit G `, 88,0) -INSERER EN SSCResults VALUES ( `Varsha K`, 85,0) -INSERER EN SSCResults VALUES ( `Sangram K`, 83,0) -INSERER EN SSCResults VALUES ( `Vish K`, 79,0) -SELECT * FROM SSCResults-


SQL_Server_Top_Clause_Screenshot1

Exemple 1 - Sélection TOP n enregistrements dans SQL Server: Trouver les trois meilleurs buteurs dans une table SSCResults

Un moyen rapide de trouver c`est de trier la colonne Score dans l`ordre décroissant et de sélectionner les trois premiers enregistrements.

TOP SELECT * FROM 3 SSCResultsORDER PAR Score DESC


La requête ci-dessus a trié le champ Score le plus haut score au score le plus bas d`abord, puis il a sélectionné les trois meilleurs scores. SELECT * indique que nous voulons récupérer toutes les colonnes de la table SSCResults.

SQL_Server_Top_Clause_Screenshot2

Exemple 2 - Top avec attaches: Traiter avec des valeurs liées

Lorsque nous nous interrogeons sur la table SSCResults, nous voyons Id = 4 et Id = 5 ont le même score. Dans ce cas, si je vais chercher les quatre premiers enregistrements de la table SSCResults basé sur la colonne Score, Id = 5 ne serait pas apparaître dans la liste parce que le Top état 4 enregistrements ne sont pas mis en place pour gérer un scénario de cravate.

Nous allons interroger les quatre premiers enregistrements de la table SSCResults.

TOP SELECT * FROM 4 SSCResults


On n`a pas vu que Id = 5 a le même score que Id = 4 dans les résultats ci-dessus parce que nous ne traitons un scénario de cravate. Pour obtenir le Id = 5 enregistrement, nous devons utiliser TOP avec TIES.

TOP SELECT 4 WITH TIES * FROM SSCResultsORDER PAR Score DESC


SQL_Server_Top_Clause_With_Ties_Screenshot3

Top article avec UPDATE et DELETE

Exemple 3 - Mise à jour de Top 3 enregistrements dans une table: Mettez à jour les trois premiers enregistrements d`une table

Nous allons mettre à jour le score des 3 meilleurs buteurs de 0,5 pour cent.

Nous ne pouvons pas utiliser directement avec ordre par une déclaration de mise à jour. Nous avons besoin d`utiliser une sous-requête pour sélectionner les trois premiers enregistrements, puis mettre à jour.

mettre à jour SSCResultssetScore = Score + 0.5where ID dans (sélectionnez top 3 IDfrom SSCResultsorder par le score desc) -


La requête ci-dessus va exécuter la sous-requête d`abord sélectionner les trois premiers ids (les trois buteurs), puis il mettra à jour leurs scores en ajoutant 0,5 pour cent.

select * from SSCResultsorder par le score desc


Nous pouvons voir que les pourcentages des trois meilleurs scores ont été mises à jour de 0,5 pour cent.

Exemple 4 - Suppression des Top 3 des enregistrements dans une table: Supprimer les trois scores les plus bas de la table

DELETE FROM SSCResultswhere ID dans (sélectionnez top 3 IDfrom SSCResultsorder par le score ASC) -


Tout d`abord, la sous-requête va chercher les scores les plus faibles des SSCResults de table, et une requête externe va supprimer ces enregistrements en fonction de l`ID produit par la sous-requête.

SQL_Server_Top_Clause_Delete

» » Top clause dans sql server avec les exemples