powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Агрегация строк
3 сообщений из 3, страница 1 из 1
Агрегация строк
    #32017395
Vitya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Простенькая на первый взгляд задачка.
Нужно сделать группировку по полю Col1, так чтобы во втором поле была конкатенация строк.
Основной упор на скорость.

Кстати, не понятно, почему агрегатной функции Sum запрещено иметь дело со строковыми типами.
Вроде ничего не мешает.

Таблица вида
Col1 ___ Col2
1 _____ А
1 _____ В
2 _____ С
1 _____ Е
...
Рейтинг: 0 / 0
Агрегация строк
    #32017409
Фотография Leonid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если используется SQL2000, то можно самому написать функцию, которая бы объединяла строки.

create table _myTable (col1 int, col2 varchar(10))

insert into _myTable values(1,'A')
insert into _myTable values(1,'B')
insert into _myTable values(2,'C')
insert into _myTable values(2,'E')
insert into _myTable values(2,'J')


CREATE FUNCTION [dbo].[strSum] (@col1 int)
RETURNS varchar(8000)
AS
BEGIN
declare @strFinal varchar(8000)
set @strFinal = ''
select @strFinal = col2 + ', ' + @strFinal from _myTable
where col1 = @col1
-- удаляем последнюю запятую
set @strFinal = substring(@strFinal, 1, len(@strFinal)-1)
return @strFinal
END

select col1, dbo.strSum(col1) as col2 from _MyTable
group by col1
...
Рейтинг: 0 / 0
Агрегация строк
    #32017468
Vitya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Большое спасибо, Леонид.
А теперь расскажу про ограничения.
Сиквел седьмой и использовать хранимки строжайше запрещено.
Неужто придется создавать временную хранимку только для этого запроса...
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Агрегация строк
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]