2017-03-14 2 views
1

ich eine einfache SELECT-Anweisung in SQL Server, die mehrere Werte zurückgibt, wie folgt:Speichere das Ergebnis von SQL wählen Sie in Variablen

1 Dog 
2 Cat 
3 Mouse 

ich wissen muss, wenn ein Weg, um eine Schleife durch sie gibt es jeden Wert zu speichern, in eine Variable, zum Beispiel:

declare @animal1 nvarchar(50) 
declare @animal2 nvarchar(50) 
declare @animal3 nvarchar(50) 

@animal1 = dog 
@animal2 = cat 
@animal3 = mouse 

Schließlich will ich alle Worte eine Kette bilden und diese Zeichenfolge in 1 Spalte einer zweiten Tabelle einzufügen

Antwort

0
DECLARE @animals TABLE (
id int identity(1,1),--identity is optional if your select returns an id 
name varchar(50) 
); 

insert into @animals 
--Your Select statement here 

Declare @string varchar(1000); 

select @string = ISNULL(@string + ', ', '') + animals.animal_name 
from 
(
Select id, name from @animals 
) animals (id, animal_name) 
+1

ja das funktioniert danke :) –

0
declare @my_string varchar(1000) 

select @my_string = ISNULL(@my_string + ', ', '') + animals.animal_name 
from 
(
    values 
    (1, 'dog'), 
    (2, 'cat'), 
    (3, 'mouse') 
) animals (id, animal_name) 

select @my_string 

enter image description here

0

Nicht sicher, was Sie genau meinen, aber können Sie eine Tabellenvariable verwenden?

DECLARE @animals TABLE (
    animal varchar(50) 
    ); 

und die Werte eingeben?

Verwandte Themen