Eindeutige Werte mit STRING_AGG und DISTINCT in SQL Server abrufen
Mit der SQL Server-Funktion STRING_AGG, die in SQL Server 2017 eingeführt wurde, können Sie aggregieren Zeichenfolgen aus mehreren Zeilen in eine einzelne durch Kommas getrennte Zeichenfolge. Bei Verwendung mit STRING_SPLIT zum Trennen von Werten in einem durch Kommas getrennten Feld kann es jedoch zu doppelten Werten in der aggregierten Zeichenfolge kommen.
Um eindeutige Werte in der aggregierten Zeichenfolge zu erhalten, können Sie Ihre Abfrage mithilfe von erweitern DISTINCT-Schlüsselwort in einer Unterabfrage. Die geänderte Abfrage lautet:
SELECT ProjectID ,STRING_AGG(value, ',') WITHIN GROUP (ORDER BY value) AS NewField FROM ( SELECT DISTINCT ProjectID , newId.value FROM [dbo].[Data] WITH (NOLOCK) CROSS APPLY STRING_SPLIT([bID],';') AS newId WHERE newId.value IN ( 'O95833' , 'Q96NY7-2' ) ) x GROUP BY ProjectID ORDER BY ProjectID
In dieser verbesserten Abfrage:
Die Ausgabe dieser geänderten Abfrage lautet:
ProjectID NewField ------------------------------- 2 O95833, Q96NY7-2 4 Q96NY7-2
Dadurch erhalten Sie das gewünschte Ergebnis mit eindeutigen Werten aggregiert mit STRING_AGG.
Das obige ist der detaillierte Inhalt vonWie erhalte ich mit STRING_AGG von SQL Server eindeutige Werte in einer durch Kommas getrennten Zeichenfolge?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!