Powiel możliwe:
Concatenate many rows into a single text string?Wybierz wiele wierszy SQL w jednym rzędzie
Załóżmy, że mam tabeli o nazwie tblContractMail
. Przykładowa tabela z danymi podane poniżej:
muszę napisać zapytanie SQL, która produkuje następujące dane wyjściowe:
„[email protected]; [email protected]; HJK @ akij.net”
znam dwie możliwości:
DECLARE @str varchar(4000)
SELECT @str = COALESCE(@str + ';', '') + strContract FROM tblContractMail
SELECT @str
oraz:
DECLARE @str varchar(4000)
SET @str = (SELECT strContract + ';' FROM tblContractMail FOR XML PATH(''))
SET @str = SUBSTRING(@str, 1, LEN(@str)-1)
SELECT @str
Czy istnieje jakiś sposób, aby to wyjście w jednym zapytaniu (to znaczy z zewnątrz deklarowania żadnych zmiennych)?
Skorzystaj z tego. http://stackoverflow.com/questions/194852/concatenate-many-rows-into-a-single-text-string –
Tak, to pytanie zostało zduplikowane kilkadziesiąt razy. –
@PeterMajeed: To prawda, chociaż nigdy nie było zadawane w tej konkretnej formie. –