Heim > Datenbank > MySQL-Tutorial > Wie erhalte ich mit STRING_AGG von SQL Server eindeutige Werte in einer durch Kommas getrennten Zeichenfolge?

Wie erhalte ich mit STRING_AGG von SQL Server eindeutige Werte in einer durch Kommas getrennten Zeichenfolge?

Linda Hamilton
Freigeben: 2025-01-04 05:28:39
Original
302 Leute haben es durchsucht

How to Get Unique Values in a Comma-Separated String Using SQL Server's STRING_AGG?

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
Nach dem Login kopieren

In dieser verbesserten Abfrage:

  • Die Unterabfrage (SELECT DISTINCT ProjectID, newId.value FROM [dbo].[Data] WITH (NOLOCK) CROSS APPLY STRING_SPLIT([bID],';') AS newId WHERE newId.value IN ( 'O95833' , 'Q96NY7-2' )) verwendet das Schlüsselwort DISTINCT, um doppelte Werte aus dem Ergebnissatz zu entfernen.
  • Die Funktion STRING_AGG wird auf die unterschiedlichen Werte angewendet und stellt sicher, dass nur eindeutige Elemente in der aggregierten Zeichenfolge enthalten sind.

Die Ausgabe dieser geänderten Abfrage lautet:

ProjectID   NewField
-------------------------------
2           O95833, Q96NY7-2
4           Q96NY7-2
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage