Выполнение MYSQL Group_Concat в SQL Server [дубликат]
На этот вопрос уже есть ответ здесь:
Как объединить текст из нескольких строк в одну текстовую строку на сервере SQL? 44 ответая портирую приложение, которое я написал для запуска на Apache, используя PHP и базу данных MySQL. В одном из запросов использовались функции MySQLConcat_WS
а такжеGroup_Concat
сначала объединить несколько разных столбцов в одну строку, а затем объединить все элементы, которые были сгруппированы поGroup_By
пункт.
В качестве примера:
ID Name Candy
1 John M&Ms
1 John KitKat
Запрос:
Select Group_Concat(Concat_WS('-',Name, Candy) Separator '00--00') as UserCandy
From ExampleTable
Group By ID
Результат:
UserCandy
John-M&Ms00--00John-KitKat
Теперь я пытаюсь добиться того же результата в SQL Server 2008 с использованием PHP 5.4+.
Что я'мы пробовали:
SELECT Stuff(name + ';' + candy, 1, 0, '-----') AS UserCandy
FROM test
Эта проблемаможно увидеть в скрипке, которую я настроил.
Ожидаемый результат будет:
-----John;MMs-----John;KitKat
Наконец, это становится еще сложнее, когда я добавляю больше столбцов в микс. Я хочу объединить результаты (как показано выше), где идентификатор совпадает. Это очень хорошо работает сgroup_concat
потому что он будет автоматически объединять строки, которые были сгруппированы вместе.