2017-02-10 7 views
0

Ich bin neu auf dieser Seite und dies ist das erste Mal, dass ich eine Frage posten. Sorry für etwas falsch. Die Frage kann alt sein, aber ich kann nur keine Antwort für SQL AnyWhere finden.
Ich habe eine Tabelle wieErstellen Sie eine Liste von gruppierten Werten

Order | Mark 
======|======== 
1  | AA 
2  | BB 
1  | CC 
2  | DD 
1  | EE 

I Ergebnis haben will, wie folgend

Order | Mark 
1  | AA,CC,EE 
2  | BB,DD 

Mein aktueller SQL ist

Select Order, Cast(Mark as NVARCHAR(20)) 
From #Order 
Group by Order 

und es mir nur mit Ergebnis gibt vollständig gleich mit die ursprüngliche Tabelle.

Irgendeine Idee dafür?

Antwort

0

können Sie die Aggregatfunktion ASA LIST() verwenden (ungetestet, müssen Sie möglicherweise die order Spaltennamen in Anführungszeichen setzen, wie es auch ein reservierter Name ist):

SELECT Order, LIST(Mark) 
FROM #Order 
GROUP BY Order; 

Sie können das Trennzeichen anpassen und bestellen wenn Sie brauchen.

Hinweis: es ist eher eine schlechte Idee,

  • Name Ihre Tabellen- und Spaltennamen wie normale SQL-Klausel (Order by)
  • den gleichen Namen für die Spalte eine Tabelle verwenden (Order)
+0

es funktionierte perfekt, vielen Dank. Danke auch für den Spaltennamen, der meinen Beitrag für besseres Aussehen rät und editiert. – ductoyo

+0

Gern geschehen. Wenn Ihr Problem behoben wurde, sollten Sie [die Antwort akzeptieren] (http://meta.stackoverflow.com/a/65088/173356) ... – Seki

Verwandte Themen