Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 аналог GROUP_CONCAT() для SQL SERVER  [new]
radar555
Member

Откуда:
Сообщений: 4
Подскажите, пожалуйста, аналог GROUP_CONCAT() для SQL.
22 окт 09, 00:09    [7820992]     Ответить | Цитировать Сообщить модератору
 Re: аналог GROUP_CONCAT() для SQL SERVER  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36803
Все прямо так и угадали вдруг, что делает GROUP_CONCAT.
22 окт 09, 00:23    [7821009]     Ответить | Цитировать Сообщить модератору
 Re: аналог GROUP_CONCAT() для SQL SERVER  [new]
radar555
Member

Откуда:
Сообщений: 4
В MySQL если джойнятся 2 или более таблицы (отношение один ко многим) можно в одном поле через какой-то разделитель вывести список данных по какому-то полю второй таблицы.
Собственно для этого GROUP_CONCAT().
22 окт 09, 00:28    [7821015]     Ответить | Цитировать Сообщить модератору
 Re: аналог GROUP_CONCAT() для SQL SERVER  [new]
iljy
Member

Откуда:
Сообщений: 8711
GROUP_CONCAT - это агрегирование строк в MySQL. Прямого аналога в мсскуле нет, начиная с 2005 есть такой например способ:
select stuff((select ',' + name  from (select 'a' name union all select 'b' union all select 'c') t
			 for xml path('')), 1,1,'')

22 окт 09, 00:50    [7821031]     Ответить | Цитировать Сообщить модератору
 Re: аналог GROUP_CONCAT() для SQL SERVER  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
iljy
GROUP_CONCAT - это агрегирование строк в MySQL. Прямого аналога в мсскуле нет, начиная с 2005 есть такой например способ:
select stuff((select ',' + name  from (select 'a' name union all select 'b' union all select 'c') t
			 for xml path('')), 1,1,'')

Только осторожнее - некоторые символы в XML имеют особый смысл.
Если они встречаются в строке, будет плохо.
select stuff((select ',' + name  from (select 'a' name union all select 'b' union all select 'c' union all select '<') t
			 for xml path('')), 1,1,'')
22 окт 09, 09:09    [7821512]     Ответить | Цитировать Сообщить модератору
 Re: аналог GROUP_CONCAT() для SQL SERVER  [new]
daw
Member

Откуда: Муром -> Москва
Сообщений: 7381

> Только осторожнее - некоторые символы в XML имеют особый смысл.
> Если они встречаются в строке, будет плохо.

?
select
stuff(
(select ',' + name  from (select 'a' name union all select 'b' union all select 'c' union all select '<') t
			 for xml path(''), type).value('.', 'nvarchar(max)')
, 1,1,'')

Posted via ActualForum NNTP Server 1.4

22 окт 09, 09:35    [7821598]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить