Ersatz für LIMIT bei MSSQL

  • So nachdem ich jetzt das erste mal was mit MS SQL DB zu tun hab, bin ich direkt über das nichtvorhandensein des LIMIT befehls gestolpert.
    Gibt es da einen vergleichbaren Befehl mit dem ich einfach sagen kann ich will die Datensätze von id 10 - 50 ausgeben lassen.
    Google hat mir auch nicht weitergeholfen

    Format C:

  • SELECT * FROM table WHERE id BETWEEN 10 AND 50



    dann gibt es noch TOP, wo du aber keinen Offset angeben kannst

    [size="-3"]Die perfekte Web-Applikation ist: sicher,skalierbar,schnell, anwenderfreundlich,intuitiv, wiederverwendbar,flexibel,transparent,umfassend,dynamisch, zuverlässig,einfach,modular,effizient, stabil,handhabbar,verteilt,robust, persistent,kollaborativ,mächtig,intelligent,leicht verwendbar,portierbar,erweiterbar,
    fehlerfrei, und zu guter Letzt billig

  • hi


    Top kenn ich und bei Between hab ich das Problem wenn z.B. id 10 - 20 nicht vorhanden sind dann hab ich nur 40 statt 50 Datensätzen.

    Format C:

  • du müsstest u.U. ein Subselect benutzen


    kannst du mal das query posten !

    [size="-3"]Die perfekte Web-Applikation ist: sicher,skalierbar,schnell, anwenderfreundlich,intuitiv, wiederverwendbar,flexibel,transparent,umfassend,dynamisch, zuverlässig,einfach,modular,effizient, stabil,handhabbar,verteilt,robust, persistent,kollaborativ,mächtig,intelligent,leicht verwendbar,portierbar,erweiterbar,
    fehlerfrei, und zu guter Letzt billig

  • Man kann z.B. ja in der SQL einen laufenden Zähler ausgaben, eben mit einem Subselect. Hierauf kann man das ganze ja filtern.


    SELECT id,themen,(select Count(*) FROM [tab] AS x WHERE x.ID< [tab].[ID]+1) as nr
    from tab
    where (select Count(*) FROM [tab] AS x WHERE x.ID< [tab].[ID]+1) between 10 and 20
    order by id


    Das Limit ist da schon etwas eleganter.

    Liebe Grüße, die Judi!