SQL sortieren und bestimmte Anzahl zurück bekommen
-
Hallo zusammen
ist es möglich bei einer Sql Datenbank eine Tabelle mit Order by zu sortieren aber mit Select dann aus dieser neu sortieren Tabelle nur die Einträge 2-15 zu bekommen?
MfG Tim
-
würd sagen ja.
du machst mit
CREATE VIEW DeinNameDerView AS SELECT * FROM deineTabelle WHERE FELD1 = xy ORDER BY FELD2 ASC;
eine View, und kannst diese View dann wie eine Tabelle behandeln
und von dieser selektieren.SELECT * FROM DeinNameDerView WHERE primaryKeyFeld > 2 and primaryKeyFeld < 15
Die ersten X EInträge auszuwählen ist glaube ich kein SQL standard..
Edit: wenn der Primary key der Tabelle eine fortlaufende Nummer ist, ginge das leichter. (s.o)
hoffe das bringt dich weiter
bis denne Jann
-
Was soll ein Filter auf das "primaryKeyFeld" bringen? Und was wenn er garkeinen Primary Key hat? Oder der aus Strings/... besteht?
Hm.
@Tim:
Das geht je nach Datenbank unterschiedlich.
In MSSQL kannst du "TOP" verwenden (SELECT TOP 15 * FROM ...).Alternativ eine Zeilennummern-Spalte mit ROW_NUMBER() OVER (ORDER BY ...) erzeugen, und dann nach der filtern.
Bei MySQL heisst es glaube ich LIMIT (genaue Syntax weiss ich nicht).
-
stimmt hustbaer.. nicht dran gedacht.
klar bringt einem das wenig, wenn der primary key kein numerisches feld ist, oder zb ne Kundennummer,ID o.ä. ...mit Limit kannst die Anzahl der Datensätze einschränken
zb LIMIT 1 => nur den erstenTOP in mssql bringt allerdings die obersten X datensätze, was wiederum nicht mehr der Anforderung des OP entspricht ( 2-15 )
vllt hilft dir google weiter, wenn du nach der Syntax von Limit/Top suchst
bis denne
-
Danke schonmal. Ich werde es nacher mal ausprobieren. Mommentan arbeite ich mit SQLite wenn das was hilft
MfG Tim