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
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"
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)
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