3 Stimmen

Beschränken Sie die Anzahl der abgerufenen Zeilen in der Ingres-Abfrage

Ich möchte wissen, ob es eine Möglichkeit gibt, eine nachfolgende Gruppe von Zeilen in einer SELECT-Abfrage in Ingres auszuwählen. Zum Beispiel können die ersten 500 Zeilen ausgewählt werden, indem man SELECT FIRST 500 FROM Tabellenname verwendet, aber wenn ich Zeilen 501 bis 1000 auswählen möchte, gibt es eine Möglichkeit dies zu tun?

13voto

grantc Punkte 1693

Sie können die OFFSET-Klausel auf folgende Weise verwenden:

SELECT Spaltenname 
FROM Tabelle 
WHERE Spaltenname = 'Wert' 
OFFSET m FETCH FIRST n ROWS ONLY

Zum Beispiel:

SELECT *
FROM Tabelle  
OFFSET 501 FETCH FIRST 500 ROWS ONLY

5voto

Adrian Punkte 5813

Sie können verwenden:

SELECT FIRST 10 * FROM Tabelle

oder

SELECT FIRST 10 Feld1, Feld2 FROM Tabelle

Ich habe es in Ingres 9.2 getestet und es funktioniert

Siehe auch: Wie begrenzt man die Ergebnismenge für beliebige Abfragen in Ingres?

0 Stimmen

Vielen Dank, Adrian. Wir werden nächstes Jahr auf Ingres9.2 aufrüsten, sodass ich es dann zum Laufen bringen kann.

2voto

Andrey Punkte 1450
Wählen Sie top 1000 * aus der Tabelle;

funktioniert perfekt in 10.0

0voto

gion_13 Punkte 9

Sie können versuchen, die Zeilennummer mit der rownum Variable zu begrenzen:

SELECT * from TABELLE
WHERE rownum <=500

Ich habe es nicht bei Ihrem Problem getestet, aber es sollte gut funktionieren:

SELECT * from TABELLE
WHERE rownum >500
AND rownum <= 1000

2 Stimmen

Ingres hat keine rownum-Spalte. Es gibt jedoch eine versteckte tid-Spalte, wobei der enthaltene Wert auf der Seitenzahl und deren Position innerhalb der Seite basiert.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X