ListAGG in SQLSERVER
Ich versuche zu aggregieren, ein 'STRING' - Feld im SQL Server. Ich würde gerne die gleiche Funktion LISTAGG wie in Oracle .
Wissen Sie, wie Sie tun, die gleiche Funktion oder eine andere Methode?
Beispielsweise
Field A | Field B
1 | A
1 | B
2 | A
Und ich möchte, dass das Ergebnis dieser Abfrage wird
1 | AB
2 | A
Bitte fügen Sie Ihre Stimme für VERSCHIEDENE: feedback.azure.com/forums/908035-sql-server/suggestions/...
InformationsquelleAutor user1557642 | 2013-03-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie In SQL Server verwenden
FOR XML PATH
um das Ergebnis zu erhalten:Sehen SQL Fiddle mit Demo
Was möchten Sie bestellen? Willst du die Werte vertauscht? Sie können ganz einfach eine
ORDER BY
siehe diese demo -- sqlfiddle.com/#!3/0836c/7. In diesem Fall ist das Ergebnis für dieFieldA
zeigenBA
in der Tat, ich habe 10 Zeilen zu aggregieren. Aber SQLServer tun alphabatical Rang vor dem aggragation. Ich möchte Aggregat mit meinen eigenen Parametern(ein Dritter Bereich) und nicht die alphabatical um.
Sie können eine
ORDER BY
, Sie müssen nur, um eineGROUP BY
in der Unterabfrage, sehen Sie sich diese demo -- sqlfiddle.com/#!3/0836c/7Ja, ich Stimme zu, und ich rollte mich wieder Bearbeiten.
InformationsquelleAutor Taryn
MySQL
Oracle & DB2
PostgreSQL
SQL Server
SQL Server ≥ 2017 & Azure SQL -
SQL Server - ≤ 2016 (CTE enthalten, um zu fördern die DRY-Prinzip)
SQLite
Bestellung erfordert eine CTE oder Unterabfrage
Ohne Bestellung
aber... warum Sie alles verwenden? es ist unnötig. Bin ich etwas fehlt?
ZEUG wird hier verwendet, um entfernen Sie das führende Komma.
Um vollständig zu sein, dies muss Hinzugefügt werden, um die sql-server-Beispiel: stackoverflow.com/a/8856789 Es verhindert, dass bestimmte Zeichen wird ersetzt durch XML-tags.
Das scheint nicht der Fall zu sein, wie ich bin, das verweisen auf ein
cte
erfolgreich auf meinem anderen monitor gerade jetzt, ich könnte mir vorstellen, Sie wurden nicht Bau deine Abfrage richtig?InformationsquelleAutor Manas Kumar
In der SQL Server-2017 STRING_AGG Hinzugefügt:
Auch, STRING_SPLIT ist nützlich für den entgegengesetzten Fall, und verfügbar in der SQL Server-2016
Hinweis: vNext hat den Namen der SQL Server-2017
Wissen Sie, wie Sie verwenden Sie verschiedene c.Namen, damit alle verketteten Namen, die eindeutig sind?
InformationsquelleAutor vldmrrdjcc
Dies könnte nützlich sein, um jemanden auch ..
d.h. Für einen data analyst und data profiling Art der Zwecke ..(also nicht gruppiert) ..
Vor, um die SQL*Server 2017 String_agg Funktion Existenz ..
(d.h. es gibt nur eine Zeile ..)
z.B. gibt durch Kommas getrennte Werte
A,B
InformationsquelleAutor Allan F