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

Откуда:
Сообщений: 458
Здравствуйте... подскажите плиз
есть таблица logs
login comment
майк пришел
майк ушел
майк сел
джон пришел
Нужно получить две строки
login comment
майк пришел, ушел, сел
джон пришел
то есть
select sum(comment) 
from logs 
group by login

в interbase есть агрегатная функция list, как реализовать то же в ms sql server 2012
10 май 15, 12:41    [17623371]     Ответить | Цитировать Сообщить модератору
 Re: аналог list в mssql  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31949
Sandist
как реализовать то же в ms sql server 2012
Ищие поиском по форуму сложение строк, тут было несколько вариантов.
10 май 15, 14:11    [17623476]     Ответить | Цитировать Сообщить модератору
 Re: аналог list в mssql  [new]
Sandist
Member

Откуда:
Сообщений: 458
alexeyvg,
Прозвучало как, катись колбаской по малой спасской
короче кому интересно реализовал так
create function qwe
vlogin varchar(50)
returns varchar(max)
begin
declare @str varchar(max) = ''
select @str=@str+comment
from logs
where login = vlogin
returns @str
end

select login, dbo.qwe(login)
from logs
order by login
10 май 15, 20:00    [17623982]     Ответить | Цитировать Сообщить модератору
 Re: аналог list в mssql  [new]
Sandist
Member

Откуда:
Сообщений: 458
но этот вариант мне оооооооч не нравится... можно сказать костыль
10 май 15, 20:01    [17623987]     Ответить | Цитировать Сообщить модератору
 Re: аналог list в mssql  [new]
BusInt
Member

Откуда:
Сообщений: 4566
Sandist
но этот вариант мне оооооооч не нравится... можно сказать костыль

Нормально.
10 май 15, 21:51    [17624247]     Ответить | Цитировать Сообщить модератору
 Re: аналог list в mssql  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31949
Sandist
Прозвучало как, катись колбаской по малой спасской
Звучит как воспользуйся поиском, отбери наиболее подходящие варианты, и выложи суда с пояснениями.

Да? :-)

Вариант суммирования строк, нормальный, использущий FOR XML можно найти тут за несколько минут, а так же другие варианты, с объяснением их плюсов и минусов.

Обсуждение этого варианта, кстати, идёт прямо сейчас в этом форуме, правда, косвенно, обсуждается другая проблема. https://www.sql.ru/forum/1155888/stuff-nuzhna-pomoshh
Sandist
но этот вариант мне оооооооч не нравится... можно сказать костыль
Этот вариант очень медленный, использует недокументированные возможности сиквела, и не гарантирует правильного порядка при сложении строк.
11 май 15, 11:51    [17625079]     Ответить | Цитировать Сообщить модератору
 Re: аналог list в mssql  [new]
Sandist
Member

Откуда:
Сообщений: 458
alexeyvg, :-)) ок, спасибо! на будущее буду иметь ввиду ))
11 май 15, 14:53    [17625448]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить