Mehrere Werte als einzelne Spalte mit T-SQL zurückgeben
Beim Umgang mit Tabellen, die mehrere Werte für ein einzelnes Attribut enthalten, müssen diese Werte für eine effiziente Datenanalyse abgerufen und in einer einzigen Spalte zusammengeführt werden. Dieser Artikel befasst sich mit einer Lösung, die eine Kombination aus Funktionen und Zeichenfolgenoperationen verwendet, um mehrere Werte in einer Spalte zurückzugeben.
Beispiel:
Betrachten Sie die Tabelle „UserAliases“ mit mehreren Aliasnamen pro Benutzer:
<code>UserId/Alias 1/MrX 1/MrY 1/MrA 2/Abc 2/Xyz</code>
Ziel ist es, die Daten in das folgende Format zu konvertieren:
<code>UserId/Alias 1/ MrX, MrY, MrA 2/ Abc, Xyz</code>
Lösung:
Dazu verwenden wir die benutzerdefinierte Funktion „GetAliasesById“, die die Funktion „COALESCE“ verwendet. Diese Funktion initialisiert eine Variable „@output“ und fügt ihr iterativ durch Kommas getrennte Aliaswerte hinzu. Das Folgende ist der Funktionscode:
<code class="language-sql">CREATE FUNCTION [dbo].[GetAliasesById] ( @userID int ) RETURNS varchar(max) AS BEGIN declare @output varchar(max) select @output = COALESCE(@output + ', ', '') + alias from UserAliases where userid = @userID return @output END</code>
Zuletzt rufen wir die Daten ab und wenden die Funktion „GetAliasesById“ an, um die Aliase zusammenzuführen:
<code class="language-sql">SELECT UserID, dbo.GetAliasesByID(UserID) FROM UserAliases GROUP BY UserID</code>
Diese Abfrage gibt die gewünschte Ausgabe mit mehreren Aliasnamen für jeden Benutzer zurück, die in einer einzigen Spalte zusammengefasst sind. Die Funktion „COALESCE“ verarbeitet Nullwerte effizient und gewährleistet so eine gültige String-Ausgabe.
Das obige ist der detaillierte Inhalt vonWie verkette ich mehrere Zeilen in einer einzelnen Spalte in T-SQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!