Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Abfrageergebnis in einer Zelle anzeigen

Empfohlene Antworten

Veröffentlicht

Hallo Leute,

ich bin auf der Suche nach einer Möglichkeit

das Ergebnis einer Abfrage, die sich auf eine Spalte

begrenzt, in einer Zelle anzeigen zu lassen.

Ein Beispiel:

Ich lasse mir alle Personen-Namen der Tabelle Mitarbeiter

anzeigen.

Select Personen-Namen from Mitarbeiter

Das Ergebnis soll nicht wie gewöhnlich so aussehen:

maier

müller

steiner

Sondern so:

maier,müller,steiner

ich hoffe ihr könnt mir weiterhelfen

Was du tun willst betrifft ja eher die Ausgabe/Anzeige des Ergebnisses. also mach es doch mit dem Programm (oder was du benutzt) und stell das dort so da. Weiis ja nicht was du nutzt, aber es ist kein Problem sowas zu tun.

In der SQL Abfrage selber ist das nicht (naja, nciht ohne riesen Aufwand) möglich.

Grund: Das Ergebniss der Abfrage zeigt dir alle Datensätze an, die zu deiner Abfrage passen. Dabei wird jedes Feld einzeln dargestellt und für jeden Satz eine neue Zeile angefangen. Das ganze würde theoretisch auch vertikal gehen (also um 90° nach links gedreht). Das ist aber unübersichtlicher und die Tabellen anzeige hat sich einfach eingebürgert.

Dein Fall ist ein recht spezieller, von daher würde ich sagen eine fertige Lösung gibt es nicht irgendwo (ok, vielleicht hat es schonmal jemand gemacht...).

Wie gesagt, du stellst das Ergebniss ja irgendwo dar, und damit (ich gehe von einer Programmiersprache aus) kannst du das ohne Probleme so umwandeln.

EDIT:

kleines Beispiel (mit Delphi):



var Output: String;

[...]

qry.CommandText:= 'SELECT NAME FROM Tabelle1';

qry.Open;

Output:= '';

while not qry.EOF do

begin

  Output:= Output + qry.Fields[0].asString;

  qry.next;

  if not qry.EOF then

    Output:= Output + ', ';

end;

es sollte schon mit sql gelöst werden.

mit der anweisung concat ist es ja auch

möglich spalten im ergebnis zusammen zu fassen,

leider muss ich zeilen zusammen fassen.

vielleicht kennt ja jemand doch was!

Ich weiss ja nicht mit welchem DBMS du arbeitest, aber es sollte wohl ,falls vorhanden, ueber einen Cursor geloest werden koennen. Das verlangsamt zwar deine Abfrage nicht gerade wenig, aber du hast es ja so gewollt ;)

Goos

mit der anweisung concat ist es ja auch

möglich spalten im ergebnis zusammen zu fassen,

Ja, das ist möglich, weil die Abfrage eben satzweise Aufgebaut ist. Der Satzzeiger befindet sich immer genau auf einem Satz, innerhalb dieses Satzes hast du alle Felder in deinem Zugriff. Sobald der Satz aber gewechselt wird, steht nur noch der neue zur Verfügung.

eine Idee (keine Ahnung ob oder wie es gehen könnte) wären die UserVariablen in MySQL (vielleicht gibt es sowas auch bei anderen Systemen).

Ansonsten über SQL...

mal so als unflexibles Beispiel:


Tabelle1


Index    Name

  1        Mueller

  2        Meier

  3        Schmidt



SELECT Name || ', ' || (SELECT NAME FROM Tabelle1 WHERE Index = 2) 

|| ', ' || (SELECT NAME FROM Tabelle1 WHERE Index = 3)  WHERE Index = 1



Mueller, Meier, Schmidt


Hab das nicht probiert, aber so in der Art sollte das dann aussehen.

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.