Datenbank Forum - für Anfänger und Profis

Willkommen im Datenbank Forum von Datenbanken-verstehen.de - Das Datenbank, Data Warehouse & Business Intelligence Forum!

Das Datenbank Forum für Anfänger und Profis ist eine Community zu den Themen Datenbanken, Data Warehouse & Business Intelligence. Nimm teil an der Community von Datenbanken-verstehen.de und tausch dich mit deinen Fragen und Lösungen mit anderen Nutzern aus.

Als registrierter Benutzer genießt Du viele Vorteile, wie

  • den vollen Zugang zu allen Foren und Unterforen
  • Kostenloses Lernmaterial inkl. Lösungen zum Thema Datenbanken
  • Zugriff auf DB-Tutorials, Best Practices und SQL-Snippets

Bevor Du einen Beitrag verfassen möchtest, kannst Du dich einfach kostenlos registrieren.

oder Einloggen mit



Beachte bitte die Forenregeln von Datenbanken-verstehen.de. Wir wünschen Dir viel Spaß im Datenbank Forum! - Dein Datenbanken-verstehen.de-Team

SQL: Mehrere Zeilen zusammenfassen und ausgeben

Alles zur Datenbankentwicklung im Microsoft SQL Server-Umfeld...

SQL: Mehrere Zeilen zusammenfassen und ausgeben

Beitragvon RainerH » Mo 1. Sep 2014, 16:20

Hallo zusammen,

ich habe hier gerde ein unschönes Resultset. Das Set besteht derzeit aus drei Zeilen.
Nun möchte ich diese drei Zeilen in einer Zeile ausgeben. Ist das möglich?

Vor langer Zeit habe ich mal so ein Statement gesehen, doch leider nicht gespeichert.

Gruß,
Rainer
Nimm NICHTS persönlich -- alles ist Feedback...
RainerH
 
Beiträge: 221
Registriert: Fr 1. Nov 2013, 17:58

Re: SQL: Mehrere Zeilen zusammenfassen und ausgeben

Beitragvon Micha » Sa 13. Sep 2014, 16:18

Hey,

benutz doch einfach einen Cursor, der durch die Zeilen durchgeht und per Concat verbindet.
Wäre das nicht eine Lösung für dein Problem?
Micha
 
Beiträge: 129
Registriert: So 3. Nov 2013, 12:13

Re: SQL: Mehrere Zeilen zusammenfassen und ausgeben

Beitragvon RainerH » So 14. Sep 2014, 17:29

Hey,

einen Cursor wollte ich nicht benutzen ;)
Geht das evtl. auch mit einem einfachen T-SQL Statement?

Gruß,
Rainer
Nimm NICHTS persönlich -- alles ist Feedback...
RainerH
 
Beiträge: 221
Registriert: Fr 1. Nov 2013, 17:58

Re: SQL: Mehrere Zeilen zusammenfassen und ausgeben

Beitragvon Yellow » Do 18. Sep 2014, 12:37

Hallo RainerH,

kannst Du ein vereinfachtes Beispiel der Quelldaten und das gewünschte Abfrageergebnis posten? Dann kann ich mir das bei Gelegenheit mal ansehen.

-yellow
Yellow
 
Beiträge: 77
Registriert: Do 8. Mai 2014, 16:46

Re: SQL: Mehrere Zeilen zusammenfassen und ausgeben

Beitragvon RainerH » Fr 19. Sep 2014, 19:00

Hallo Yellow,

es geht um folgendes Problem. Ich habe als Abfrage folgendes Beispiel:

Code: Alles auswählen
SELECT NACHANME FROM TBL_Kunden

Das Ergebnis wäre ja folgendes:
Code: Alles auswählen
NACHNAME
--------
Meier
Müller
Schulze

Nun hätte ich aber gerne diese drei Zeilen in einer Zeile:
Code: Alles auswählen
NACHNAME
--------
Meier, Müller, Schulze

Ich weiß, dass es dafür ein T-SQL Statement gibt, aber ich kann es nicht mehr rekonstruieren.
Kannst Du mir helfen?

Gruß,
Rainer
Nimm NICHTS persönlich -- alles ist Feedback...
RainerH
 
Beiträge: 221
Registriert: Fr 1. Nov 2013, 17:58

Re: SQL: Mehrere Zeilen zusammenfassen und ausgeben

Beitragvon Yellow » Mo 22. Sep 2014, 12:01

Hallo RainerH,

die Abfrage hierfür könnte wie folgt aussehen:

Code: Alles auswählen
SELECT stuff((
    SELECT ', ' + cast(Nachname as varchar(max))
    FROM TBL_Kunden
    FOR XML PATH('')
   ), 1, 2, '');


-yellow
Yellow
 
Beiträge: 77
Registriert: Do 8. Mai 2014, 16:46

Re: SQL: Mehrere Zeilen zusammenfassen und ausgeben

Beitragvon MPR » Mo 22. Sep 2014, 14:19

Hallo,

dazu gibt's mehrere workarounds und connect-Tickets (weil andere RDBMS dazu build-in Lösungen anbieten), die Aaron Bertrand kürzlich hinsichtlich ihrer Performance untersucht hat: http://sqlperformance.com/2014/08/t-sql ... catenation. Interessant ist dabei, dass die aus meiner Sicht einleuchtendste Variante - der Einsatz einer CTE - die bei weitem langsamste Variante ist ...
MPR
 
Beiträge: 3
Registriert: Mo 30. Jun 2014, 09:19

Re: SQL: Mehrere Zeilen zusammenfassen und ausgeben

Beitragvon RainerH » Mi 24. Sep 2014, 18:28

Hallo zusammen,

vielen Dank für die Antworten!

@yellow: Gibt es auch eine Variante ohne "FOR XML PATH",
da es ein SQL Server 2005 ist.
Nimm NICHTS persönlich -- alles ist Feedback...
RainerH
 
Beiträge: 221
Registriert: Fr 1. Nov 2013, 17:58

Re: SQL: Mehrere Zeilen zusammenfassen und ausgeben

Beitragvon Yellow » Mi 24. Sep 2014, 19:00

Hallo RainerH,

FOR XML PATH() ist meines Wissens als neues Feature in SQL Server 2005 eingeführt worden und somit eigentlich verfügbar - http://technet.microsoft.com/en-us/library/ms345137%28v=sql.90%29.aspx#forxml2k5_topic4

-yellow
Yellow
 
Beiträge: 77
Registriert: Do 8. Mai 2014, 16:46

Re: SQL: Mehrere Zeilen zusammenfassen und ausgeben

Beitragvon RainerH » Mi 24. Sep 2014, 19:02

Ahhhhh ok,

ich dachte das wäre erst ab SQL Server 2008 verfügbar.
Vielen Dank!
Nimm NICHTS persönlich -- alles ist Feedback...
RainerH
 
Beiträge: 221
Registriert: Fr 1. Nov 2013, 17:58

Nächste

Zurück zu Microsoft SQL Server

 


  • Related topics
    Antworten
    Zugriffe
    Letzter Beitrag

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

  • Jetzt Fan werden
  • Newsletter abonnieren? Hier anmelden!

    Alle Informationen aus dem Portal, Blog und Forum in einem Newsletter!

    E-Mail-Adresse: