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:
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>
UDAF in Abfragen verwenden:
<code class="language-sql"> SELECT Id, [dbo].[ConcatValues](Value) AS ConcatenatedValues FROM YourTable GROUP BY Id;</code>
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!