Heim >Datenbank >MySQL-Tutorial >Wie eliminiere ich Duplikate bei der Verwendung von STRING_AGG in SQL Server?
Eliminieren von Duplikaten in STRING_AGG-Ergebnissen
Die Aufgabe besteht darin, eindeutige Werte mithilfe der STRING_AGG-Funktion in SQL Server abzurufen und sicherzustellen, dass doppelte Elemente entfernt werden .
In der bereitgestellten Beispielabfrage wird die Funktion STRING_AGG verwendet, um Zeichenfolgen zu a zu verketten einzelnes durch Kommas getrenntes Feld, gruppiert nach Projekt-ID. Das resultierende NewField enthält jedoch doppelte Werte.
Um ein eindeutiges NewField zu erhalten, können wir das Schlüsselwort DISTINCT innerhalb einer Unterabfrage verwenden. Die aktualisierte 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
Die Unterabfrage wählt zunächst die unterschiedlichen Werte von ProjectID und newId.value aus der Originaltabelle aus. Diese unterschiedlichen Werte werden dann in der äußeren Abfrage verwendet, um die STRING_AGG-Operation auszuführen, um sicherzustellen, dass im endgültigen NewField-Ergebnis keine Duplikate vorhanden sind.
Das Ausführen dieser geänderten Abfrage liefert die gewünschte Ausgabe nur mit eindeutigen Werten:
ProjectID | NewField ----------+---------- 2 | O95833, Q96NY7-2 4 | Q96NY7-2
Das obige ist der detaillierte Inhalt vonWie eliminiere ich Duplikate bei der Verwendung von STRING_AGG in SQL Server?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!