Heim > Datenbank > MySQL-Tutorial > Wie verkette ich SQL-Abfrageergebnisse zu einer einzelnen Zeichenfolge?

Wie verkette ich SQL-Abfrageergebnisse zu einer einzelnen Zeichenfolge?

Susan Sarandon
Freigeben: 2025-01-04 10:19:35
Original
456 Leute haben es durchsucht

How to Concatenate SQL Query Results into a Single String?

SQL-Abfrageergebnisse zu einer einzelnen Zeichenfolge verketten

Problem:

In SQL enthält eine Funktion eine Abfrage, die abruft eine Liste von CodeName-Werten aus der AccountCodes-Tabelle, sortiert nach Sortierung. Das Ziel besteht darin, diese Werte zu einer einzelnen Zeichenfolge zu verketten und das Ergebnis in einer CodeNameString-Variable zu speichern.

Lösung:

Verwendung von FOR XML PATH und STUFF ( SQL Server 2005 oder höher):

DECLARE @CodeNameString varchar(100)

SELECT 
   @CodeNameString = STUFF( (SELECT ',' + CodeName 
                             FROM dbo.AccountCodes 
                             ORDER BY Sort
                             FOR XML PATH('')), 
                            1, 1, '')
Nach dem Login kopieren

Diese Methode verwendet die FOR XML PATH-Klausel um die CodeName-Werte in einer XML-Zeichenfolge zu verketten. Das resultierende XML wird dann mithilfe der STUFF-Funktion zurück in eine Zeichenfolge konvertiert, wobei das erste Zeichen (ein Komma) entfernt wird.

Hinweis: Dieser Ansatz funktioniert möglicherweise nicht, wenn die CodeName-Werte Folgendes enthalten bestimmte Zeichen wie <, > oder &. In solchen Fällen wird eine alternative Lösung empfohlen, wie die unten vorgeschlagene:

Alternative Lösung (mit DISTINCT und FOR XML RAW):

DECLARE @CodeNameString varchar(100)

SELECT 
   @CodeNameString = DISTINCT(CodeName) 
WHERE 
   EXISTS (SELECT 1 FROM dbo.AccountCodes WHERE CodeName = @CodeNameString)
FOR XML RAW, ',')
Nach dem Login kopieren

Dies Die Methode verwendet die FOR XML RAW-Klausel, um eine XML-Zeichenfolge zu erstellen, die die verketteten Werte enthält, ausgenommen Duplikate. Der String wird dann der CodeNameString-Variable zugewiesen.

Das obige ist der detaillierte Inhalt vonWie verkette ich SQL-Abfrageergebnisse zu einer einzelnen 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