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

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

Таблица вида
Col1 ___ Col2
1 _____ А
1 _____ В
2 _____ С
1 _____ Е
...
Рейтинг: 0 / 0
21.11.2001, 07:38
    #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
21.11.2001, 14:32
    #32017468
Vitya
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Агрегация строк
Большое спасибо, Леонид.
А теперь расскажу про ограничения.
Сиквел седьмой и использовать хранимки строжайше запрещено.
Неужто придется создавать временную хранимку только для этого запроса...
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Агрегация строк / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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