Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Comment utiliser Top with Ties dans SQL Server - Tutoriel SQL Server / TSQL Partie 114

Dans le dernier message, nous avons appris comment renvoyer les x lignes supérieures/inférieures de la table du serveur sql. Dans cet article, nous allons apprendre Top avec cravates.

Selon BOL
"AVEC CRAVATES
Utilisé lorsque vous souhaitez renvoyer deux lignes ou plus qui sont à égalité pour la dernière place dans l'ensemble de résultats limité. Doit être utilisé avec la clause ORDER BY. WITH TIES peut entraîner le renvoi de plus de lignes que la valeur spécifiée dans expression. Par exemple, si l'expression est définie sur 5 mais que 2 lignes supplémentaires correspondent aux valeurs des colonnes ORDER BY de la ligne 5, le jeu de résultats contiendra 7 lignes. "

Créons la table dbo.Customer et découvrons la différence entre Top et Top With Ties.

Créons la table dbo.Customer(Id int,Name VARCHAR( 10),Address VARCHAR(100))--Insert records in dbo.Customer tableInsert into dbo.CustomerValues(1,'Aamir','XyZ Address'),(2,'Raza',Null),(1,'Aamir ','Adresse XyZ'),(1,'Jean','Adresse XyZ'),(5,'Lisa','Adresse XyZ')
 Remarqué que nous avons des enregistrements en double comme indiqué ci-dessus. Exécutons les requêtes ci-dessous, d'abord avec uniquement Top et ensuite avec "With Ties" et observons le résultat.

Select top (2) * From dbo.Customer order by ID
comment utiliser Top x pour obtenir les meilleurs enregistrements de la table dans SQL Server - Tutoriel TSQL
Sélectionnez le haut (2) AVEC CRAVATES * De dbo.Commande client par ID
 
Comment utiliser Top with Ties dans SQL Server pour obtenir Top x lignes - Tutoriel SQL Server / TSQL
 La première requête n'a renvoyé que 2 enregistrements, mais la deuxième requête avec "With Ties" a renvoyé trois enregistrements, car la valeur de l'ID pour le troisième enregistrement était également de 1, ce qui correspondait à la deuxième ligne (valeur de la colonne id =1). Si vous utilisez "Avec liens" avec Top, la requête vous donnera également tous les liens avec la dernière ligne en fonction de la colonne de classement.