PEter Detzner: MSSSQL

Hello...

Wenn ich eine Tabelle mit 35 Eintraegenhabe, wie kann ich aus der Tabelle dann, den 7 und 8 bzw. den X. und Y. Eintrag auswaehlen?

In MySQL kann ich das einfach ueber Limit(min,max) loesen, aber wie loese ich das in MSSQL?

MfG

Peter D.

  1. yo,

    Wenn ich eine Tabelle mit 35 Eintraegenhabe, wie kann ich aus der Tabelle dann, den 7 und 8 bzw. den X. und Y. Eintrag auswaehlen?

    das kommt drauf an, nach welchen kriterium du den die daten überhaupt einordnest, nach einem datumswert oder einfach nur danach, wie dir das dbms die daten zur verfügung stellt ?

    In MySQL kann ich das einfach ueber Limit(min,max) loesen, aber wie loese ich das in MSSQL?

    MSSQL kennt die TOP klausel, die direkt nach der SELECT klausel gescrhieben wird. wobei meiner meinung nach nur die anzahl der datensätze damit bestimmt werden kann.

    Ilja

  2. echo $begrüßung;

    Wenn ich eine Tabelle mit 35 Eintraegenhabe, wie kann ich aus der Tabelle dann, den 7 und 8 bzw. den X. und Y. Eintrag auswaehlen?

    In MySQL kann ich das einfach ueber Limit(min,max) loesen, aber wie loese ich das in MSSQL?

    Dass PEAR::DB das emuliert, indem es erstmal 6 Datensätze in die Rundablage fetcht, um dann Nummer 7 und 8 rauszugeben und den Rest zu verwerfen, wird den Grund haben, dass MSSQL kein Äquivalent zu LIMIT anzubieten hat. PEAR::MDB2 ist wenigstens so intelligent, die Anzahl noch mit SELECT TOP offset+limit einzugrenzen. Aber bis zum Offset muss es sich auch erstmal "ranfetchen".

    echo "$verabschiedung $name";

  3. Wenn ich eine Tabelle mit 35 Eintraegenhabe, wie kann ich aus der Tabelle dann, den 7 und 8 bzw. den X. und Y. Eintrag auswaehlen?

    In MySQL kann ich das einfach ueber Limit(min,max) loesen, aber wie loese ich das in MSSQL?

    Eigentlich gar nicht, denn die physikalische Anordnung, die sich möglicherweise auch beim "SELECT * FROM" wiederspiegelt ist keine logische, d.h. Du solltest nichts, aber auch gar nichts darauf aufbauen, wie der Datenserver die Daten (zurzeit) zurückliefert (sofern keine explizite Sortierungsanweisung (ORDER BY) vorliegt).

    Zu LIMIT gibt es in MSSQL das Äquivalent TOP, ggf. musst Du auf Sub-SELECTs zurückgreifen, um die LIMIT-Klausel nachzubauen.