![]() |
Nur die ersten n Ergebnisse anzeigen
Hallo,
ich hoffe ihr könnt mir helfen. Ich möchte nur die Ersten n Ergebnisse anzeigen lassen bzw sollen nur n Ergebnisse bei einer Abfrage rauskommen
SQL-Code:
Wie kriege ich es nun hin, dass ich nur n und nicht alle Kunden geordnet
Select Kunde, Datum
from Kunden order by Datum nach dem Datum als Ergebnis zurückbekomme? P.S. Ich nutze Oracle Danke Wegalt |
Re: Nur die ersten n Ergebnisse anzeigen
ADOQuery:
Delphi-Quellcode:
Direct Oracle Access:
With Query Do
Begin SQL.Text := 'SELECT Kunde,' + #10 + ' Datum' + #10 + 'FROM Kunden' + #10 + 'WHERE RowNum <= :i_LimitRows' + #10 + 'ORDER By Datum'; Prepared := True; Parameters.ParamByName('i_LimitRows').Value := n; Open; While Not Eof Do Begin ... Next; End; ... End;
Delphi-Quellcode:
With Query Do
Begin SQL.Text := 'SELECT Kunde,' + #10 + ' Datum' + #10 + 'FROM Kunden' + #10 + 'WHERE RowNum <= :i_LimitRows' + #10 + 'ORDER By Datum'; DeclareVariable('i_LimitRows', otInteger); SetVariable('i_LimitRows', n); Execute; While Not Eof Do Begin ... Next; End; ... End; |
Re: Nur die ersten n Ergebnisse anzeigen
Darauf bin ich zuerst auch gekommen aber das funktioniert nicht.
Mit "Rownum" geht es nicht, da mir dann nur die Zeilen ausgewählt werden, wo die Zeilennummer <= meines Wertes ist. Rownum begrenzt nicht mein Ergebnis sondern die auszuwählenden Zeilen!! |
Re: Nur die ersten n Ergebnisse anzeigen
:wall:
Man muss es natürlich erst in einem Subselect sortieren und danach die Menge einschränken. die Where-Clause läuft ja auch vor Select & Order By...
Delphi-Quellcode:
Edit: Hab' "<= 5" durch "<= :i_LimitRows" ersetzt
SQL.Text :=
'SELECT v.Kunde,' + #10 + ' v.Datum' + #10 + 'FROM (SELECT Kunde,' + #10 + ' t.Datum' + #10 + ' FROM Kunden t' + #10 + ' ORDER By t.Datum Desc) v' + #10 + 'WHERE RowNum <= :i_LimitRows'; |
Re: Nur die ersten n Ergebnisse anzeigen
Unterstützt Oracle kein Top?
SQL-Code:
Gruß
SELECT TOP 10 *
FROM Tabelle WHERE Bedingung |
Re: Nur die ersten n Ergebnisse anzeigen
Ist wohl so ein SQL-Server spezifisches Ding. :wink:
Dafür haben wir Pseudo-columns wie RowNum, RowID, Level,... p.s.: Ich wette der Optimizer würde deinen Code fast genauso umsetzen wie meinen, du sparst dir wahrscheinlich nur etwas Tipperei. |
Re: Nur die ersten n Ergebnisse anzeigen
Danke euch, leider geht geht TOP nicht aber dafür die verschachtelte Anweisung
|
Re: Nur die ersten n Ergebnisse anzeigen
Wegalt Frage würde mich auch interessieren. Leider setze ich Informix7.2 ein, dort finde ich aber leider keine Funktion, um nur x Zeilen aus meiner Suche anzuzeigen. Weiss jemand von Euch Rat?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:49 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz