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 ersten

    TOP 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


Anmelden zum Antworten