AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Suche Erklärung für SQL-Syntax
Thema durchsuchen
Ansicht
Themen-Optionen

Suche Erklärung für SQL-Syntax

Ein Thema von p80286 · begonnen am 15. Mär 2010 · letzter Beitrag vom 16. Mär 2010
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#11

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

  Alt 16. Mär 2010, 11:37
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
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#12

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

  Alt 16. Mär 2010, 13:43
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. 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.
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#13

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

  Alt 16. Mär 2010, 14:33
Zitat von Hansa:
.... Dass das ORDER BY wegegelassen wird, das bewirkt lediglich, dass nach dem ersten Feld sortiert wird.
Jo, keine Einwände
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 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
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:12 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz