Je travaille sur cette table:Trier par colonne booléenne produisent des lignes en double lorsque la pagination dans le serveur SQL
Quand faire la pagination en utilisant la colonne IsAdmin
, le résultat contiendra des lignes en double. Ceci est ma requête:
SELECT [UserId],[IsAdmin],[Date] FROM [Groups].[GroupMembers]
WHERE ([GroupId] = 5)
ORDER BY [IsAdmin] DESC
OFFSET 0 ROWS FETCH NEXT 6 ROWS ONLY
Et la seconde requête:
SELECT [UserId],[IsAdmin],[Date] FROM [Groups].[GroupMembers]
WHERE ([GroupId] =5)
ORDER BY [IsAdmin] DESC
OFFSET 6 ROWS FETCH NEXT 6 ROWS ONLY
Le résultat pour les deux requêtes est:
Mais si l'utilisateur la colonne Date
, je reçois résultat sans doublon.
Ma question est la suivante: pourquoi utiliser des lignes booléennes en double?
Il ne produit pas de lignes dupliquées. C'est une colonne inutile pour une commande par. Vous devez ajouter une autre colonne à votre commande par ou vous n'avez aucune idée de l'ordre dans lequel ils seront retournés. Il fera tout ce qu'il veut pour l'ordre à l'intérieur de chaque valeur de votre booléen. Peut-être que simplement ajouter UserId comme une deuxième colonne fonctionnerait? –