Bonjour à tous,

Je fais la requete suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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