none
Ergebnis eines SELECT zusammenfassen RRS feed

  • Frage

  • Ich habe folgendes Problem und versuche es anhand eines Beispieles zu erklären:
    Als Ergebnis einer Abfrage erhalte ich eine Spalte mit mehreren Zeilen:
    APFEL
    BIRNE
    BANANE

    Jetzt sollte ich aber als Rückgabewert die 3 Ergebnisse als ein Wert in einer Zelle erhalten also z.B.
    APFEL BIRNE BANANE

    Ähnlich einer Summe die ich mit SUM bilde nur eben das es sich um Strings handelt.

    Gibt es da eine Möglichkeit das zu machen?

    Danke für eure Hilfe!

    Gruß
    Jürgen
    Montag, 24. August 2009 09:30

Antworten

Alle Antworten

  • Hallo Jürgen,

    Hier ein Artikel über wie Zeichenfolgen aus einer Spalte in eine einzelne Zeile verkettet werden:

    http://databases.aspfaq.com/general/how-do-i-concatenate-strings-from-a-column-into-a-single-row.html

    Grüße,

    Robert

    Montag, 24. August 2009 10:36
    Moderator
  • Hallo Jürgen,

    Hat Dir die Antwort geholfen?

    Grüße,
    Robert

    Sonntag, 6. September 2009 09:30
    Moderator
  • Hi Jürgen,
    ich weiss nicht, ob es die elegantste Lösung ist, aber ich würde die Ergebnissmenge über einen cursor abarbeiten und zu einem String zusammensetzen. Kommt natürlich darauf an, wie komplex deine Ergebnissmenge ist, je nachdem könnte das schon nen heftigen Trümmer geben ;-)

    Wenn Du nen Code-bsp. brauchst gib einfach Bescheid.

    Wenn Du eine andere Möglichkeit gefunden hast tät mich die aber auch interessieren:

    Grüsse

    Pichel
    Freitag, 11. September 2009 13:16
  • Hallo Pichel,

    aus Performancegesichtspunkten ist ein Cursor selten eine gute Idee. Oft liegt der Gebrauch (Mißbrauch) darin begründet, das nicht mengenorientiert, sondern satzweise "gedacht" wird. Für bestimmte Probleme haben Cursor natürlich ihre Daseinsberechtigung.

    Wenn es deine Zeit und Lust zuläßt, vergleich doch mal die unter
    http://databases.aspfaq.com/general/how-do-i-concatenate-strings-from-a-column-into-a-single-row.html
    vorgestellten Lösungen mit deiner Cursor-Lösung.

    Insbesondere die Lösung ab SQL Server 2005 mit FOR XML PATH dürfte dich zum umdenken anregen.

    Viele Grüße
    Christoph
    Freitag, 11. September 2009 19:32
  • Hi Christoph,
    Vielen Dank, da hab ich wieder was gelernt.

    ich wusste bereits das der exzessive Einsatz von cursor tunlichst vermieden werden sollte, aber ich hatte bisher keine passende Möglichkeit gefunden, meine Anforderungen anders umzusetzen.

    Sehr empfehlenswert das Howto.

    Grüsse

    Pichel
    Samstag, 12. September 2009 10:14
  • Hallo Jürgen,

    Ich gehe davon aus, dass die Antwort Dir weitergeholfen hat.
    Solltest Du noch "Rückfragen" dazu haben, so gib uns bitte Bescheid.

    Grüße,
    Robert

    Donnerstag, 17. September 2009 08:54
    Moderator