Wie "implodiere" (de-normalize / concat) mehrere Spalten in eine einzelne Spalte?

8

Ich habe eine Abfrage, die so etwas ausgibt:

%Vor%

Ich bin mir sicher, dass ich eine Aggregationsfunktion gesehen habe, die es (mit GROUP BY F_KEY ) in etwa so verwandelt:

%Vor%

Bedeutet, es "implodiert" irgendwie die Werte von EV in einem einzigen Feld. Wie kann ich das machen? Leider erinnere ich mich nicht an den Namen der Funktion.

Ich benutze SQL Server.

Dies ist eine Vereinfachung meiner Abfrage:

%Vor%

Irgendeine Idee wird geschätzt!

    
Atmocreations 10.11.2011, 19:12
quelle

4 Antworten

2

Hier ist die beste Verkettungsmethode, es werden keine Sonderzeichen wie andere XML-Methoden erweitert:

%Vor%

AUSGABE:

%Vor%     
KM. 10.11.2011, 20:10
quelle
1

Sie können wahrscheinlich die beschriebene Technik hier . (Volle Offenlegung: das ist mein Blog.) Es geht um das Generieren verketteter Strings in T-SQL, ohne Verwendung von Cursorn.

    
Ann L. 10.11.2011 19:47
quelle
1

Sie können es einfach mit einer Funktion machen: Angenommen, Sie suchen ständig in derselben Spalte / Tabelle. Dynamisches SQL benötigt, wenn Sie in der Lage sein möchten, die Spalten / Tabellen zu variieren

%Vor%     
Steve Henderson 11.11.2011 16:39
quelle
0

Wenn Sie FOR XML PATH verwenden, können Sie ihn wie einen Varchar mit der XML-Zeichenkette konvertieren, dies unterstützt auch ein Trennzeichen / Ausdruck. Es wird am Ende Ihrer Abfrage gehen, aber höchstwahrscheinlich müssen Sie eine Unterabfrage-Struktur verwenden.

    
nka 21.11.2011 21:03
quelle

Tags und Links