AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Select-Resultat in einer Spalte anzeigen
Thema durchsuchen
Ansicht
Themen-Optionen

Select-Resultat in einer Spalte anzeigen

Ein Thema von Perlsau · begonnen am 11. Jul 2014 · letzter Beitrag vom 13. Jul 2014
Antwort Antwort
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#1

AW: Select-Resultat in einer Spalte anzeigen

  Alt 12. Jul 2014, 11:26
Bei mir geht sowas:
Code:
select list (valuetxt) from (select VALUETXT from TESTGEN_VAL a order by Valuetxt) b
Vermutlich kann man auch noch einen (gemeinsamen) Schlüsselwert der Listvalues reinpacken (innen) und den dann außen ins Groub by aufnehmen und ausgeben bzw. weiterverwenden.
Gruß, Jo
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#2

AW: Select-Resultat in einer Spalte anzeigen

  Alt 12. Jul 2014, 12:47
Also ich habe jetzt auch an mehreren Stellen gelesen, das die Reihenfolge unbestimmt ist. Bei einem ORDER BY wäre es naheliegend, das es funktioniert, aber es wäre auch denkbar, das die Daten bei der Verarbeitung zum LIST nicht immer sequentiell abgearbeitet werden (Parallelbetrieb, Strategiewechsel etc.). Bei kleinen Tabellen dürfte das aber eher nicht der Fall sein.

Anmerkung: Man würde auch annehmen, das Daten in einem SELECT in der Reihenfolge geliefert werden, in der sie eingefügt wurden (wenn sonst keine Delete oder Update passiert ist). Darauf kann man sich aber auch nicht verlassen, weil es hier um Daten*mengen* geht, keine Daten*listen*. Allerdings bildet 'ORDER BY' eine Ordnung auf die Darstellung der Menge als Liste.
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#3

AW: Select-Resultat in einer Spalte anzeigen

  Alt 12. Jul 2014, 15:01
Also ich habe jetzt auch an mehreren Stellen gelesen, das die Reihenfolge unbestimmt ist. Bei einem ORDER BY wäre es naheliegend, das es funktioniert, aber es wäre auch denkbar, das die Daten bei der Verarbeitung zum LIST nicht immer sequentiell abgearbeitet werden (Parallelbetrieb, Strategiewechsel etc.).
Mein Beispiel oben ergibt ohne Order By eine andere Reihenfolge. Und zwar die gleiche ungeordnete Folge, die ein Select * ohne Order By ergibt.
Die Tatsache, dass es mit und ohne Order By unterschiedlich ausgegeben wird und das auch noch entsprechend der Bedeutung von Order by, deutet darauf hin, dass es entsprechend implementiert ist.
Doku dazu habe ich auf die Schnelle nicht gefunden.
Gruß, Jo

Geändert von jobo (12. Jul 2014 um 15:12 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: Select-Resultat in einer Spalte anzeigen

  Alt 12. Jul 2014, 15:23
Da diese Funktion ja in einem GROUP BY verwendet wird, werden die Einträge wohl so genommen, wie die gerade reinkommen. Gebe ich eine nach den Einträgen sortierte Liste dort rein bekommt man auch ein sortiertes Ergebnis. Dieses kann man aber nicht direkt beeinflussen, sondern eben nur indirekt über diesen Zwischenschritt.

Darum die Aussage, dass die Sortierung unbestimmt ist.

(Müsste man mal ausprobieren)
grptxt
1b
1c
1a
SQL-Code:
  select list( i.txt, ',' )
    from (
             select d.grp, d.txt
               from data d
           order by d.txt ) i
group by i.grp
sollte dann
Code:
a,b,c
ergeben
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)

Geändert von Sir Rufo (12. Jul 2014 um 15:37 Uhr)
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#5

AW: Select-Resultat in einer Spalte anzeigen

  Alt 12. Jul 2014, 16:13
sollte dann
Code:
a,b,c
ergeben
Das tut es ja, wie ich schrieb. Ein "Group by" sollte an der Sortierung des "List()"- Result nicht mehr viel ändern, da es bereits vor dem Group schon stehen dürfte. "Group by" ist in Deinem Beispiel überflüssig, wird aber halt meistens nötig, wenn man das "List()" nicht ganz auf dem Trockenen einsetzen will.
Gruß, Jo
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#6

AW: Select-Resultat in einer Spalte anzeigen

  Alt 12. Jul 2014, 17:17
Bei mir funktioniert dieses View nicht so, daß die Einträge in der List-Spalte alphabetisch sortiert sind:
Code:
CREATE OR ALTER VIEW V_ZUSATZ1(
    Z_ID,
    Z_NAME,
    Z_ALT,
    Z_KLASS,
    Z_ENUM,
    Z_NOTIZ,
    Z_BIO,
    Z_GVO,
    Z_MARK)
AS
select
Z.ID_ZUSATZ,
Z.Z_NAME,
Z.ALTNAME,
K.V_ZUSATZ_KLASSE,
Z.ENUMMER,
Z.Z_NOTIZ,
Z.BIO,
Z.GVO,
Z.MARKIERT

from ZUSATZ Z
inner join
   (select
        List(ZK_KLASSE,', ') as V_ZUSATZ_KLASSE,
        ZK_ZUSATZ as I
    from
        (select ZK_KLASSE, ZK_ZUSATZ
         from V_ZUSATZ_KLASSE
         order by ZK_KLASSE)
    group by I
    )
        K on I = Z.ID_ZUSATZ
order by Z_NAME;
Angehängte Grafiken
Dateityp: jpg FirebirdListViewSQL1.jpg (203,2 KB, 6x aufgerufen)
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#7

AW: Select-Resultat in einer Spalte anzeigen

  Alt 12. Jul 2014, 19:45
Bei mir funktioniert dieses View nicht so, daß die Einträge in der List-Spalte alphabetisch sortiert sind:
Es scheint tatsächlich am Group by zu liegen. So geht's:
Code:
SELECT a.OID, a.ICLASS,
  (select List(iname) as ItemList
    from (select iname, iclass
            from ANITEM i
           where i.iclass = a.ICLASS
           order by iname)) as X
FROM ANORDER a
Gruß, Jo
  Mit Zitat antworten Zitat
Antwort Antwort


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 22:04 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