SQL - Speichern mehrerer Datensätze in einer Variablen, die durch Kommas getrennt
Ich habe zwei Variablen, 1 varchar namens cust_ref
und 1 int namens associated_ids
. Was ich versuche zu erreichen, ist die folgende:
Die Sie cust_ref
mit einem Wert, der führt in der Regel zwischen 1+ Zeilen zurückgegeben, die von der Customer
Tabelle. Mir geht es um die Erfassung aller customer_id
Datensätzen cust_ref
und speichert Sie in der associated_ids
variable, getrennt durch commars.
Dies ist der SQL habe ich bisher, und offensichtlich ist nur das laden eines der customer_id
Datensätze in die variable. Basierend auf diesem Beispiel möchte ich wählen Sie @associated_ids
auf Folgendes zurück 75458,77397,94955
declare @cust_ref varchar(20) = 'ABGR55532'
declare @associated_ids int
select distinct @associated_ids = customer_id
from dbo.Customer
where cust_ref = @cust_ref
select @associated_ids
select *
from dbo.Customer
where cust_ref = @cust_ref
Hier die Ergebnisse aus der oben genannten, wie Sie sehen können, gibt es eigentlich 3 associated_ids
dass ich muss in der Variablen gespeichert, in diesem Beispiel, aber mein Befehl wird die Erfassung der größte, ich will alle 3 getrennt nach commars.
- mögliche Duplikate von Verketten viele Zeilen in einer einzigen text-string?
- Ich bin mir nicht sicher, warum würden Sie wollen, etwas zu Ergebnis in eine durch Komma getrennte Zeichenfolge in der SQL. Wenn es das ist, wie Sie präsentiert wird, in der Benutzeroberfläche, wählen Sie aus den Zeilen, und konvertieren Sie es in Ihrem DAL
- Ich bin erstellen eine gespeicherte Prozedur, die brauchen nur das cust_ref Variablen, so dass ich verwenden können (@associated_ids)
- Auch ich habe einen Blick auf die "Duplikate" und bin kämpfen, um von den FÜR die XML-PATH-syntax in meinem Beispiel, ich würde daher schätzen alle die das Skript für mein Beispiel
Du musst angemeldet sein, um einen Kommentar abzugeben.
Könnten Sie versuchen, etwas in dieser Art ... natürlich sind einige Anpassungen erforderlich sein werden:
dann,
Dann, so verwenden Sie zum abrufen der Werte:
Hier gehen Sie