Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi union und Sortierung (https://www.delphipraxis.net/122228-union-und-sortierung.html)

haentschman 11. Okt 2008 18:37

Datenbank: Firebird • Version: 2.0 • Zugriff über: Zeos

union und Sortierung
 
Hallo alle... :hi:

Man nehme eine SQL Anweisung:

select ....
union
select ....
union
select ....
open

...soweit sogut kein Problem.

jetzt hätte ich aber gern eine Sortierung über die gesamte Ergebnismenge.
...ein angehängetes order by wird bemängelt :gruebel:

kann ich die Sortierung schon über die Anweisung machen oder muß ich dann nachträglich die Query sortieren.
...letzteres wäre mir gar nicht so lieb. :wink:

Danke für Infos...

mkinzler 11. Okt 2008 18:44

Re: union und Sortierung
 
Verwendene eine Derived Table:

SQL-Code:
select
    *
from
    ( select ...
      union
      ...
    )
order by
    ...;

DeddyH 11. Okt 2008 18:46

Re: union und Sortierung
 
Versuch es mal mit
SQL-Code:
SELECT * FROM
(
    SELECT Feld1, Feld2
    FROM Tabelle1
  UNION
    SELECT Feld1, Fedl2 
    FROM Tabelle2
  UNION
    SELECT Feld1, Feld2
    FROM Tabelle 3
) X
ORDER BY Feld1
[edit] *Grmpf* [/edit]

haentschman 11. Okt 2008 18:55

Re: union und Sortierung
 
Danke für die schnelle Reaktion...

...mit Klammern hatte ich es auch versucht...wollte er auch nicht :(
[edit]...ich weis auch warum :oops: Ich hatte die Klammern um die select Anweisungen ohne angeführtes select* from
...wieder was gelernt :thumb:
[/edit]

aber Google war meine Freundin :wink:
union und order by

...das Geheimnis war statt dem Feldnamen für die Sortierung den Index der entsprechenden Spalte.
...Warum auch immer :gruebel:

Danke für Euer Interresse.

haentschman 11. Okt 2008 19:14

Re: union und Sortierung
 
Hallo Ihr beiden...

ich habe mich dann doch für Eure Variante entschieden...

Grund: die Differenz zwischen Spaltennummer und dem Index der Spalte machte das ganze unübersichtlich

Danke noch mal... :thumb:

sx2008 11. Okt 2008 19:52

Re: union und Sortierung
 
Ich würde UNION noch durch UNION ALL ersetzen.
Bei UNION versucht die Datenbank Datensätze, bei denen alle Felder gleich sind auf einen einzigen Datensatz zu reduzieren.
Bei UNION ALL unterbleibt diese Prüfung, was natürlich schneller ist.

haentschman 11. Okt 2008 21:32

Re: union und Sortierung
 
...im Hinblick auf die Prüfung hatte ich das noch nicht gesehen, da ich eh eindeutige Datensätze habe.

...guter Vorschlag :thumb:

Danke


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:46 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-2025 by Thomas Breitkreuz