Laden...

Seitenweise abfragen

Erstellt von attaÄhh vor 16 Jahren Letzter Beitrag vor 16 Jahren 1.153 Views
A
attaÄhh Themenstarter:in
78 Beiträge seit 2004
vor 16 Jahren
Seitenweise abfragen

verwendetes Datenbanksystem: <MS SQL 2005>

Hallo,

ich möchte eine Abfrage auf meine Datenbank machen und das Ergebniss Häppchen weise anzeigen.

Im Prinzip wie auf der Seite hier, ich suche etwas und bekomme die ersten 10 Ergebnisse angezeigt. Klicke ich auf "Seite 2" die nächsten 10 usw. Die erste Abfrage wäre ja kein Problem z.B. mit TOP 10... aber wie kann ich die zweite machen?? von 10 - 20?? Gibt es irgeneine eindeutige ROWID oder ähnliches nach der ich filtern kann??

Gruß

atta

643 Beiträge seit 2006
vor 16 Jahren

Girdview mit Pager

oder

Anzahl der Spalten auslesen
dan z.b pro 10 spalten ein Label hinzufügen
bei klick auf Label Query String ändern "Select From * Top Count unsw"

3.511 Beiträge seit 2005
vor 16 Jahren

Da du einen SQL 2005 nutzt, solltest du auch dessen Features nehmen. Ab SQL 2005 ist eine neue Funktion ROW_NUMBER hinzugefügt worden.

Die Funktioniert ungefähr so:


WITH Abfrage AS
(
	SELECT ROW_NUMBER() OVER(ORDER BY EmployeeID) AS RowNumber,
		Title, BirthDate
	FROM HumanResources.Employee
)
SELECT * FROM Abfrage
WHERE RowNumber BETWEEN 20 AND 30 -- Oder was auch immer

"Jedes Ding hat drei Seiten, eine positive, eine negative und eine komische." (Karl Valentin)

A
attaÄhh Themenstarter:in
78 Beiträge seit 2004
vor 16 Jahren

Alles klar,

dankschön - genausowas hab ich gesucht 🙂

Eine Frage hab ich allerdings noch muss ich das ganze als cte machen?

Reicht nicht sowas:

SELECT ROW_NUMBER() OVER(ORDER BY Artikel.ArtikelId) AS RowNumber, *
FROM Artikel WHERE RowNumber = 10

-- da bekomm ich nähmlich dann die Meldung "Ungültiger Spaltenname 'RowNumber'."

gruß atta