SqlServer 2008 Problème de tri
Bonjour à tous,
Je fais la requete suivante :
Code:
1 2 3 4 5
| SELECT *
FROM A, B, C
WHERE A.ID = C.ID
AND A.STP_CODE = B.STP_CODE
ORDER BY B.STP_LIB |
Cela me trie les résultat par B.STP_LIB
Je ne veux que les 50 premiers résultats, je rajoute donc TOP 50
Code:
1 2 3 4 5
| SELECT TOP 50 *
FROM A, B, C
WHERE A.ID = C.ID
AND A.STP_CODE = B.STP_CODE
ORDER BY B.STP_LIB |
et là ça me trie bien mes résultats mais lorsqu'il y a la même valeur dans la colonne STP_LIB, les résultats ne sont pas dans le même ordre que lors de la première requête. Je ne sais pas si c'est très clair, je vais faire un petit schéma pour mieux expliquer (ce sera peut-être mieux... lol)
A gauche, ma première requête et a droite ma deuxième requête
Code:
1 2 3 4 5 6 7 8
| ID TITLE STP_LIB | ID TITLE STP_LIB
21 title21 lib2 | 21 title21 lib2
1 title1 lib2 | 1 title1 lib2
5 title5 lib3 | 89 title89 lib3
56 title56 lib3 | 56 title56 lib3
89 title89 lib3 | 48 title48 lib3
48 title48 lib3 | 5 title5 lib3
12 title12 lib3 | 12 title12 lib3 |
Ils sont bien triés par ordre croissant de STP_LIB mais les données ne sont pas dans le même ordre et c'est un problème pour moi car comme je fais un système de pagination, il est possible que les données se retrouvent dans deux pages différentes.
Je ne comprend pas que prendre seulement les X premiers résultats fait que ça change l'ordre des résultats.
Voila si quelqu'un trouve une solution...
Merci d'avance