Wie kann ich, ohne dass temporäre Tabelle Paging in Sybase tun? (Oracle rownum Ausgabe)

StackOverflow https://stackoverflow.com/questions/1225889

  •  22-07-2019
  •  | 
  •  

Frage

In Oracle, in der Regel, wie dies für Paging abfragen.

SELECT * FROM (SELECT *, rownum rid  FROM TABLEA WHERE rownum <= #pageend#)
WHERE rid > #pagestart#

Es gibt jedoch keine "rownum" -Funktion in Sybase DBMS.

Wie kann ich diese Abfrage exactlly gleiche in Sybase?

ich einige Wege gefunden.

  1. verwenden "rowcount"

    gesetzt rowcount 10

    select * from TABLEA

  2. Verwendung Identität (stellen temporäre Tabelle)

    SELECT *, ROWNUM = IDENTITY (8) in #TEMP VON TABLEA

    SELECT * FROM #TEMP WHERE ROWNUM <# # Seite UND ROWNUM> = #pagestart #

    DROP TABLE #TEMP

diese sind nicht das, was ich will.

rowcount wird auf Sitzungsebene festgelegt und ich möchte nicht, temporäre Tabelle machen.

War es hilfreich?

Lösung

Wenn Sie eine eindeutige ID-Spalte auf Ihrer Tabelle Sie SELECT TOP verwenden könnte n

SELECT TOP 10 *
FROM tableA
WHERE id BETWEEN @start AND @end

Andere Tipps

Dies werden Sie alle der Ids , damit Sie sie in einer Auswahl wie "select * where id_column in (ids from query below)" verwenden können,

select top 10 id_column from trade
where @whereClause
and id_column > 0  //keep replacing this with the max id from the result set
order by id_column
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top