Splitten einer Ergebnismenge
-
hallo zusammen,
die weiten des internets haben mir bisher kein ergebnis geliefert. vielleicht hat ja einer von euch eine idee.
ich habe eine tabelle: id; kunde; branche
wenn ich nun folgenden befehl ausführe bekomme ich ca 180 000 datensätze
SELECT kunde FROM adressen WHERE branche LIKE 'bau'
so weit so gut.
ich möchte aber nun das ergebnis splitten. also ich will einmal nur die ersten 10 000 datensätze angezeigt haben, oder die datensätze von 40 000 - 50 000.
ist das irgendwie möglich?
-
Hallo
welche DB
Mfg
Klaus
-
hi klaus,
mssql
-
Hallo
schade
aber such mal unter
"mssql limit"Mfg
Klaus
-
hi klaus,
jo limit geht mit mysql (deswegen warscheinlich schade ) in mssql ist es etwas umständlicher. das kennt nur top. hab aber über dein tipp die lösung gefunden
select top 20 * from adressen where id not in (select top 10 id from adressen WHERE branche LIKE 'bau' order by id) AND branche LIKE 'bau' order by id
top 20 * -> hier die anzahl der datensätze
select top 10 -> ab der wievielten row soll angezeigt werdenda bekommst du doch nen gehirnknoten. LIMIT 10,20 ist doch wesentlich einfacher.
herzlichen dank und nen schönen abend noch
-
Avalon schrieb:
top 20 * -> hier die anzahl der datensätze
select top 10 -> ab der wievielten row soll angezeigt werdendas stimmt so nicht, TOP 10 liefert immer nur die ersten 10 Reihen. das * sagt nur, dass du alle Spalten der Tabelle willst
wenn ORDER BY enthalten ist, liefert TOP 10 die ersten 10 Reihen der sortierten Tabelle
siehe http://msdn2.microsoft.com/en-us/library/aa259187(SQL.80).aspx
-
Ab der Version 2005 wird das Pagging direkt unterstützt.