Ich möchte die "state of the art" Möglichkeiten sammeln, um Ergebnisse für jede Datenbank in diesem Wiki zu paginieren.Seite Ergebnisse in [Datenbank Ihrer Wahl]
Input: Ich habe eine große Tabelle PAGE_ME:
create table PAGE_ME (
ID bigint not null,
NAME varchar(32) not null,
CREATED TIMESTAMP not null
)
id
als created
nicht unbedingt in der gleichen Reihenfolge ist. Ich möchte die Ergebnisse zwischen 5. May 2008 09:03:01
und 3. Aug 2008 11:00:01
, 20 zu einer Zeit, geordnet nach Zeit, aufsteigend (5. Mai zuerst) anzeigen. Die Abfrage sollte zurückkehren NAME
und CREATED
(plus was auch immer das Ergebnis Paginieren müssen), so dass die innere Abfrage ist:
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
an den Keyboards, bereit ... Go! ;)
Ich benutze dies die ganze Zeit. Es gibt ein ähnliches Feature in neueren Versionen von MSSQL, so dass Sie das gleiche Konstrukt (mit geringfügigen Änderungen) auch in MSSQL verwenden können. –
Oh ja und du brauchst die Unterabfrage nicht in der Mitte, da du die order by-Klausel in der innersten Unterabfrage hast, kannst du einfach das "ROWNUM <= x" -Ding im innersten haben und den mittleren loswerden . –
Sie meinen, Sie brauchen es nicht in MSSQL? Sie brauchen es in Oracle, sonst erhalten Sie nicht die richtigen Daten. –