Heim > Datenbank > MySQL-Tutorial > Wie verkettet man Werte innerhalb von Gruppen in SQL Server?

Wie verkettet man Werte innerhalb von Gruppen in SQL Server?

Mary-Kate Olsen
Freigeben: 2025-01-09 12:36:48
Original
168 Leute haben es durchsucht

How to Concatenate Values Within Groups in SQL Server?

Gruppen in SQL Server beitreten

Um Werte innerhalb von Gruppen in SQL Server 2005 zu verknüpfen, sollten Sie die Verwendung benutzerdefinierter Aggregatfunktionen in Betracht ziehen.

Lösung:

  1. Erstellen Sie eine benutzerdefinierte Aggregatfunktion (UDAF):

    <code class="language-sql"> CREATE AGGREGATE [dbo].[ConcatValues] (@str VARCHAR(MAX))
     RETURNS VARCHAR(MAX)
     AS
     BEGIN
         DECLARE @result VARCHAR(MAX) = '',
                 @delim VARCHAR(2) = '';
         WHILE @str IS NOT NULL
         BEGIN
             SET @result = @result + @delim + @str;
             SET @delim = ',';
             SET @str = NEXT VALUE;
         END;
         RETURN @result;
     END;</code>
    Nach dem Login kopieren
  2. UDAF in Abfragen verwenden:

    <code class="language-sql"> SELECT Id, [dbo].[ConcatValues](Value) AS ConcatenatedValues
     FROM YourTable
     GROUP BY Id;</code>
    Nach dem Login kopieren

Ergebnis:

Id ConcatenatedValues
1 'A,B'
2 'C'

Beachten Sie, dass diese Lösung eine WHILE-Schleife verwendet, um die Eingabewerte zu durchlaufen und sie mit Kommas als Trennzeichen zu verketten. Dies unterscheidet sich von der FOR-Schleife im ursprünglichen Beispiel, implementiert jedoch dieselbe Funktionalität und ist in SQL Server häufiger anzutreffen. NEXT VALUE wird verwendet, um den nächsten Eingabewert der Aggregatfunktion abzurufen. YourTable sollte durch Ihren tatsächlichen Tabellennamen ersetzt werden.

Das obige ist der detaillierte Inhalt vonWie verkettet man Werte innerhalb von Gruppen in SQL Server?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage