Je voudrais rassembler les "dernières techniques" pour paginer les résultats pour n'importe quelle base de données dans ce wiki.Résultats de la page dans [base de données de votre choix]
Entrée: J'ai une grande table PAGE_ME:
create table PAGE_ME (
ID bigint not null,
NAME varchar(32) not null,
CREATED TIMESTAMP not null
)
id
est pas nécessairement dans le même ordre que created
. Je veux afficher les résultats entre 5. May 2008 09:03:01
et 3. Aug 2008 11:00:01
, 20 à la fois, classés par date, croissant (5 mai d'abord). La requête doit retourner NAME
et CREATED
(plus tout ce que vous devez paginer le résultat), de sorte que la requête est intérieure:
select NAME, CREATED
from PAGE_ME
where CREATED between '2008-05-05 09:03:01' and '2008-08-03 11:00:01'
order by CREATED asc
Sur les claviers, prêts ... Go! ;)
Je l'utilise tout le temps. Il existe une fonctionnalité similaire dans les versions plus récentes de MSSQL. Vous pouvez donc utiliser la même construction (avec des modifications mineures) dans MSSQL. –
Oh oui et vous n'avez pas besoin de la sous-requête au milieu, puisque vous avez la clause order by dans la sous-requête la plus interne, vous pouvez juste avoir le truc "ROWNUM <= x" au plus profond et se débarrasser du milieu . –
Vous voulez dire que vous n'en avez pas besoin dans MSSQL? Vous en avez besoin dans Oracle sinon vous n'obtiendrez pas les données correctes. –