Autor Beitrag
Wathlon
Hält's aus hier
Beiträge: 15



BeitragVerfasst: Fr 07.03.03 17:14 
Hallo,

ich habe eine Frage und hoffe auf Hilfe:

Bei mySQL gibt es für den Select Befehl ein "LIMIT 0,x"

Das fürhrt den Selext nur auf die Datensätze 0 bis x aus, wobei meines Wissens nach die Sortierung berücksichtigt wird.

Gibt es das auch für Intebase?

Vielen Dank!

Gruß Walter
bis11
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1247
Erhaltene Danke: 2

Apple Mac OSX 10.11

BeitragVerfasst: Fr 07.03.03 17:21 
Wathlon hat folgendes geschrieben:
Bei mySQL gibt es für den Select Befehl ein "LIMIT 0,x"

Das fürhrt den Selext nur auf die Datensätze 0 bis x aus, wobei meines Wissens nach die Sortierung berücksichtigt wird.



Das ist nicht ganz richtig, meines Wissens. Denn der Befehl Limit zeigt Dir nur die Anzahl der Datensätze an. Das heißt, wenn Dein Ergebnis des SELECT Befehls 100 Datensätze ausspucken würde, kannst Du mit dem Befehl Limit die nur einen bestimmten Bereich anzeigen lassen.

Beispiel:
ausblenden Quelltext
1:
SELECT * FROM tabelle WHERE FELD1='Meier' ORDER BY Vorname LIMIT 0,30					


Dieses Beispiel zeigt Dir sortiert nach Vornamen die ersten 30 Meier's an.

Meines Wissen ist dieses nur eine Eigenschaft des MySQL-Server's und es gibt das nicht für den Interbase-Server. Bin mir aber nicht ganz sicher.
Lemmy
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 792
Erhaltene Danke: 49

Windows 7 / 10; CentOS 7; LinuxMint
Delphi 7-XE10.1, VS 2015
BeitragVerfasst: Mo 10.03.03 08:34 
Hi,

diese Funktion gibt es nur in der kommerziellen Variante von Interbase, wie es bei Firebrid z.Zt. aussieht weiß ich nicht. Allerdings kann dieses Verhalten auch über Stored Procedures nachgebaut werden. Wenn Du da Interesse daran hast, dann melde Dich mal....
Grüße
Lemmy
delphiDeveloper
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 48



BeitragVerfasst: Do 13.03.03 17:54 
Titel: Top wie bei MSSQL oder Limit MYSQL gibt es nicht bei IB6
Glaube gelesen zu haben, dass Firebird so was hat.

Bei IB6 koennte man folgende Stored Proc schreiben:

--------------------------------------------------------------
CREATE PROCEDURE FIRSTROWS_FROM_PERSONAL ( ROWS INTEGER )
RETURNS (PE_ID INTEGER, PE_NAME VARCHAR(25))
AS
BEGIN
IF (ROWS < 1) THEN EXIT;
FOR SELECT PE_ID, PE_NAME FROM PERSONAL
ORDER BY PE_NAME
INTO :PE_ID, :PE_NAME
DO
BEGIN
SUSPEND;
ROWS = ROWS - 1;
IF (ROWS < 1) THEN EXIT;
END
END
--------------------------------------------------------------

Ein Select auf die ersten n saetze saehe dann so aus:

SELECT * FROM FIRSTROWS_FROM_PERSONAL(50)
Udontknow
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2596

Win7
D2006 WIN32, .NET (C#)
BeitragVerfasst: Fr 14.03.03 12:11 
Hi!

So etwas gibt es auch bei IB-Firebird. So wirds gemacht:

ausblenden Quelltext
1:
select first 10 skip 100 feld1,feld2 from tabelle					


Dieses Statement gibt die 10 Datensätze aus, die nach den 100 ersten DS kommen.

Cu,
Udontknow