Eindeutige Werte mit STRING_AGG in SQL Server abrufen
Problem:
Verwendung der Funktion STRING_AGG können Sie durch Kommas getrennte Werte aus einer Spalte abrufen. Die Ergebnisse können jedoch Duplikate enthalten. Wie erhalten Sie nur die eindeutigen Werte in der Ausgabe?
Abfrage:
Die folgende Abfrage verwendet STRING_AGG, um die eindeutigen Werte abzurufen:
SELECT ProjectID, STRING_AGG(DISTINCT newID.value, ',') WITHIN GROUP (ORDER BY newID.value) AS NewField FROM [dbo].[Data] WITH (NOLOCK) CROSS APPLY STRING_SPLIT([bID], ';') AS newID WHERE newID.value IN ('O95833', 'Q96NY7-2') GROUP BY ProjectID ORDER BY ProjectID
Erklärung:
Das Schlüsselwort DISTINCT in der Unterabfrage eliminiert doppelte Werte aus die Ergebnismenge. Der CROSS APPLY-Operator teilt die bID-Spalte mithilfe der Funktion STRING_SPLIT in einzelne Werte auf. Die Funktion STRING_AGG verkettet diese Werte dann zu einer durch Kommas getrennten Zeichenfolge und die ORDER BY-Klausel stellt sicher, dass die Werte vor der Verkettung sortiert werden.
Ausgabe:
Das Finale Die Ausgabe zeigt nur die eindeutigen Werte für jede Projekt-ID an:
ProjectID NewField ------------------------------- 2 O95833, Q96NY7-2 4 Q96NY7-2
Das obige ist der detaillierte Inhalt vonWie erhalte ich mit STRING_AGG in SQL Server eindeutige durch Kommas getrennte Werte?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!