Comment sélectionner les lignes supérieures suivantes, y compris les nouvelles lignes ajoutées par l'user entre la sélection.

Supposons que j'ai une table classée par colonne Nom. Pour la première fois, j'aimerais sélectionner les 500 premières lignes. L'user peut append de nouvelles lignes à la table. Basé sur les exigences de l'user. J'aimerais récupérer les 500 prochaines lignes sans refind les 500 premières lignes. Supposons que la table soit classée par nom et qu'il ajoute de nouvelles lignes qui pourraient être dans le top 500.

La question est Comment puis-je sélectionner les 500 prochaines lignes, y compris les nouvelles lignes que je ne pouvais pas get à la première fois, car il s'agit de nouvelles lignes?

Ce que vous décrivez s'appelle Paging

Voici un bon article qui le décrit. Paging côté server à l'aide de SQL Server 2005

Qui comprend cet échantillon

DECLARE @PageSize INT, @PageNumber INT, @FirstRow INT, @LastRow INT SELECT @PageSize = 20, @PageNumber = 3 SELECT @FirstRow = ( @PageNumber - 1) * @PageSize + 1, @LastRow = (@PageNumber - 1) * @PageSize + @PageSize ; WITH Members AS ( SELECT M_NAME, M_POSTS, M_LASTPOSTDATE, M_LASTHEREDATE, M_DATE, M_COUNTRY, ROW_NUMBER() OVER (ORDER BY M_POSTS DESC) AS RowNumber, ROW_NUMBER() OVER (ORDER BY M_NAME DESC) AS RowNumber2 FROM dbo.FORUM_MEMBERS ) SELECT RowNumber, M_NAME, M_POSTS, M_LASTPOSTDATE, M_LASTHEREDATE, M_DATE, M_COUNTRY FROM Members WHERE RowNumber BETWEEN @FirstRow AND @LastRow ORDER BY RowNumber ASC; 

Notez les variables pagesize et pagenumber. Ceux-ci pourraient être des parameters à une procédure stockée à la place.

Im affirmant que vous avez une colonne dans la table des users appelée isnewuser qui est définie sur true pour everynew user ajouté et n'est pas affiché dans la list

pendant que vous regardez les 500 prochains loggings, alors que d'autres users ont été ajoutés, je vous suggère de les montrer dans la list séparée ci-dessous l'original en disant "les nouveaux users" etcc etc.

Cela n'a aucun sens d'afficher les nouveaux users, qui auraient pu figurer sur la première page, à la page 2 de la list principale.