SELECT TOP 5 WITH TIES EmpNumber,EmpName
FROM Employee
Order By EmpNumber DESC
Cette requête ci-dessus renvoie plus de cinq résultats. Quelle est l'utilisation du mot clé "With Ties"?.
Utilisé lorsque vous souhaitez renvoyer deux lignes ou plus qui se lient pour la dernière place dans l'ensemble de résultats limité.
Notez l'exemple
Nous avons une table avec 6 entrées 1 à 4 et 5 deux fois.
Fonctionnement
SELECT TOP 5 WITH TIES *
FROM MyTable
ORDER BY ID;
renvoie 6 lignes, car la dernière ligne est liée (existe plusieurs fois).
Tandis que
SELECT TOP 5 WITH TIES *
FROM MyTable
ORDER BY ID DESC;
ne renvoie que 5 lignes, car la dernière ligne (2 dans ce cas) n'existe qu'une seule fois.
Vérifiez cette requête et elle sera plus claire.
SELECT TOP 5 WITH TIES *
FROM MyTable
ORDER BY ID;
RÉSULTAT: - 1 2 3 4 5 5
SELECT TOP 5 *
FROM MyTable
ORDER BY ID;
RÉSULTAT: - 1 2 3 4 5
Supposons que nous ayons une table nommée myTable avec les données ci-dessous:
1 Geeks 10000
4 Finch 10000
2 RR 6000
3 David 16000
5 Lesley 7000
6 Watson 10000
Requête: SELECT * de myTable
ordre par salaire desc
récupérer les 3 premières lignes uniquement;
Sortie: Nous n'avons obtenu que les 3 premières lignes par salaire par ordre décroissant
3 David 16000
1 Geeks 10000
4 Finch 10000
Remarque: Dans le résultat ci-dessus, nous avons obtenu les 3 premières lignes, classées par salaire dans l'ordre décroissant, mais nous avons une ligne de plus avec le même salaire, c'est-à-dire la ligne avec le nom Watson et le salaire 10000, mais cela n'a pas fonctionné. t est apparu, car nous avons limité notre sortie aux trois premières lignes uniquement. Mais ce n'est pas optimal, car la plupart du temps dans les applications en direct, nous devrons également afficher les lignes liées.
Exemple réel - Supposons que nous ayons 10 coureurs en course et que nous ayons seulement 3 prix, c'est-à-dire, premier, deuxième, troisième, mais supposons que les coureurs 3 et 4 ont terminé la course ensemble en même temps, donc dans ce cas où nous avons une égalité entre 3 et 4 et c'est pourquoi les deux sont titulaires de la position 3.