Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Suche Erklärung für SQL-Syntax (https://www.delphipraxis.net/149135-suche-erklaerung-fuer-sql-syntax.html)

p80286 16. Mär 2010 10:37

Re: Suche Erklärung für SQL-Syntax
 
Hallo,
Vielen Dank für die Antworten,
Ich hab dann auch noch ein wenig ausprobiert:
SQL-Code:
select 1, tabdos.coddos akte,' '
from tabdos
where tabdos.coddos like 'H 00%'
union
select 2, tabdos.coddos,tabbre.numdep
from tabdos,tabbre
where tabdos.idedos=tabbre.idedos
  and tabdos.coddos like 'H 00%'
order by 2
Das ergibt dann:
Code:
 
          1 AKTE           ''
---------- --------------- ---------------
         2 H 00997         59510209.3
         2 H 00997         95908939.2
         2 H 00997         95EP533
         2 H 00997         P4405510.2
         1 H 00998
         2 H 00998         08/836162
         2 H 00998         4439574.4
         2 H 00998         515016/96
         2 H 00998         95936561.0
         2 H 00998         95EP4225
         1 H 00999

         1 AKTE           ''
---------- --------------- ---------------
         2 H 00999         08/687588
         2 H 00999         4402851.2
ohne das "order by 2" wäre die Ausgabe wie Hansa sie beschrieben hat.
Bei Oracle kann man allerdings die Feldnamen, des 1.Select für die Sortierung nutzen

Gruß
K-H

Hansa 16. Mär 2010 12:43

Re: Suche Erklärung für SQL-Syntax
 
Das da verhält sich doch auch, wie beschrieben. Ich habe mich da wohl nicht genau genug ausgedrückt. Wenn in meinem Beispiel die Reihenfolge vertauscht werden soll, also die Daten aus der zweiten Tabelle sollen vor denen der ersten kommen, dann muss aus dem SELECT 1 -> SELECT 2 gemacht werden und umgekehrt. Dass das ORDER BY wegegelassen wird, das bewirkt lediglich, dass nach dem ersten Feld sortiert wird.

Bei Dir bewirkt dass ORDER BY 2, dass nach den H... Feldern sortiert wird. Mache mal da ORDER BY 4 rein. Du wirst sehen, dass z.B. der Datensatz mit dem P am Anfang zuletzt kommt. :shock: Ganz ohne ORDER BY werden die SELECT 1,.. - Felder vor den SELECT 2,.. Feldern stehen. Zusätzlich beginnen die zweiten Felder im SELECT alle mit H 00. Und das LIKE 'H 00%' würfelt die Ergebnismenge einfach so zusammen. ORDER BY 2 macht IMHO da keinen Sinn.

p80286 16. Mär 2010 13:33

Re: Suche Erklärung für SQL-Syntax
 
Zitat:

Zitat von Hansa
.... Dass das ORDER BY wegegelassen wird, das bewirkt lediglich, dass nach dem ersten Feld sortiert wird.

Jo, keine Einwände
Zitat:

Zitat von Hansa
...Bei Dir bewirkt dass ORDER BY 2, dass nach den H... Feldern sortiert wird. Mache mal da ORDER BY 4 rein.

Tippfehler!
das ergibt
Zitat:

order by 4
*
ERROR at line 9:
ORA-01785: ORDER BY item must be the number of a SELECT-list expression
Deine Intention erreicht man mit "Order by 3"

Zitat:

Zitat von Hansa
... ORDER BY 2 macht IMHO da keinen Sinn.

Doch, da es sich bei den H-Feldern um "Hauptaktennummern" handelt. Wenn ich ohne "Order by" arbeite, werden die "Hauptaktensätze" und die "Unteraktensätze" nicht zusammen geführt, daher das "Order by 2"

Aber vielen Dank nochmals an alle, Es ist immer positiv wenn man solche Konstrukte versteht.
Gruß
K-H


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:26 Uhr.
Seite 2 von 2     12   

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