Realizando o Group_Concat do MYSQL no SQL Server [duplicado]
Esta questão já tem uma resposta aqui:
Como concatenar texto de várias linhas em uma única cadeia de texto no SQL Server? 44 respostasEu estou portando um aplicativo que eu escrevi originalmente para rodar no Apache usando PHP e um banco de dados MySQL. Uma das consultas utilizou as funções do MySQLConcat_WS
eGroup_Concat
primeiro concatenar algumas colunas diferentes em uma string e, em seguida, concatenar todos os itens que foram agrupados peloGroup_By
cláusula.
Como um exemplo:
ID Name Candy
1 John M&Ms
1 John KitKat
A pergunta:
Select Group_Concat(Concat_WS('-',Name, Candy) Separator '00--00') as UserCandy
From ExampleTable
Group By ID
O resultado:
UserCandy
John-M&Ms00--00John-KitKat
Agora, estou tentando realizar o mesmo resultado no SQL Server 2008 usando o PHP 5.4+.
O que eu tentei:
SELECT Stuff(name + ';' + candy, 1, 0, '-----') AS UserCandy
FROM test
O problemapode ser visto no violino que eu tenho configuração.
O resultado esperado seria:
-----John;MMs-----John;KitKat
Por fim, isso se torna ainda mais difícil quando adiciono mais colunas à mixagem. Eu quero mesclar os resultados (como mostrado acima), onde o ID é o mesmo. Isso funciona muito bem comgroup_concat
porque ele irá mesclar automaticamente as linhas que foram agrupadas.