Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi was ist das ggt von first? (https://www.delphipraxis.net/79186-ist-das-ggt-von-first.html)

sancho1980 17. Okt 2006 22:51

Datenbank: firebird • Version: 1.5 • Zugriff über: ibx, ibexpert

was ist das ggt von first?
 
angenommen ich will von einer tabelle die ersten 5 einträge haben, dann kann ich schreiben:

SQL-Code:
select first 5 * from tabelle order by ascending tabelle
wie mach ich es aber, wenn ich nicht die ersten 5, sondern die letzten 5 haben will ? (die aufsteigende sortierung soll aber beibehalten werden)

SQL-Code:
select last 5 * from tabelle order by ascending tabelle
schluckt fb jedenfalls nicht :-(

Matze 17. Okt 2006 22:58

Re: was ist das ggt von first?
 
Hi,

gibt es bei Firebird nicht auch LIMIT?

Union 17. Okt 2006 22:59

Re: was ist das ggt von first?
 
So könnte es gehen:
SQL-Code:
select subquery.* from
( select first 5 * from tabelle order by blafeld descending ) subquery
order by blafeld ascending

sancho1980 17. Okt 2006 23:07

Re: was ist das ggt von first?
 
Zitat:

Zitat von Matze
Hi,

gibt es bei Firebird nicht auch LIMIT?

kannst du das mal im kontext verwenden?

Matze 17. Okt 2006 23:19

Re: was ist das ggt von first?
 
Ich kenne mich mit Firebird nicht aus, doch die meisten Datenbanken kennen diesen Befehl. Anzuwenden ist er so:

SQL-Code:
SELECT * FROM tabelle ORDER BY blubb ASC LIMIT [Anzahl der Zeilen - 6], 5
Der erste "Parameter" nach Limit gibt den Offset (Startdatensatz) an, beginnend bei 0, der zweite ist die Anzahl der Datensätze. ANzahl der Zeilen ist bei dir dann etwas wie "count(*)", denke ich mal.
Ob das bei Firebird auch so geht, weiß ich aber leider nicht, evtl. bringe ich dich auch nur durcheinander, da man das so nicht machen kann. SOrry, falls es so sein sollte.

hoika 17. Okt 2006 23:22

Re: was ist das ggt von first?
 
Hallo,

unter FB1.5 gibt es kein Limit.
Als Abhilfe wäre hier nur eine SP
mit Order By XX Desc und dem selbständigen Zählen in der SP


Heiko

Hansa 18. Okt 2006 01:46

Re: was ist das ggt von first?
 
Zitat:

Zitat von hoika
Als Abhilfe wäre hier nur eine SP

War auch mein erster Gedanke. Aber nur wenns wirklich nicht anders gehen sollte. Unions Lösung ist aber einfacher und sie geht definitiv so (man holt sich die letzten 5 Records in eine Datenmenge und sortiert die paar dann nochmals).

Und @Sancho : Du investierst viel Zeit in Dein Programm. Und zwar auf IBX-Basis. Das geht IMHO nicht mehr lange gut. Auch FIRST kam erst mit Firebird. Glaube das "Limit" ist Interbase. Dürfte in dem Fall hier zwar egal sein, weil nur ein String als Befehl an die DB geschickt wird. Aber wenn Du so weitermachst, dann taucht ein Problem auf und mit IBX ist nichts mehr zu machen. Das kann sehr schnell schlimm werden. Dann heißt es nämlich : DB umbauen und/oder auf Interbase umsteigen und Programm im DB-Bereich komplett neu machen !

mkinzler 18. Okt 2006 06:18

Re: was ist das ggt von first?
 
Ab FB 2 könnte man auch eine Derived Table verwenden statt der UNION.


Alle Zeitangaben in WEZ +1. Es ist jetzt 21: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