Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / IBM DB2, WebSphere, IMS, U2, etc Новый топик    Ответить
 как построить запрос?  [new]
igor_kz
Member

Откуда:
Сообщений: 23
помогите запрос построить!
Есть таблица с полями ID, NAME.
Требуется для одинаковых ID поле NAME объединить, т.е.
имеем:
1, Иванов
2, Сидоров
2, Петров

получаем:
1, Иванов
2, Сидоров;Петров

Хелп!
18 май 10, 11:34    [8791009]     Ответить | Цитировать Сообщить модератору
 Re: как построить запрос?  [new]
Mark Barinstein
Member

Откуда: Москва
Сообщений: 4946
with a (id, name) as (values 
  (1, 'Иванов')
, (1, 'Иванов')
, (2, 'Петров')
, (2, 'Сидоров')
)
, b (id, name, rn) as (
select id, name, rownumber() over(partition by id) rn
from a
)
, c (id, name, rn) as (
select id, cast(name as varchar(128)) name, rn
from b
where rn=1
  union all
select b.id, c.name||';'||b.name, b.rn
from b, c
where b.id=c.id and b.rn=c.rn+1
)
select c.id, c.name
from c
join (
select id, max(rn) rn from c group by id
) g (id, rn) on g.id=c.id and g.rn=c.rn
18 май 10, 19:05    [8794967]     Ответить | Цитировать Сообщить модератору
 Re: как построить запрос?  [new]
igor_kz
Member

Откуда:
Сообщений: 23
Спасибо, Mark!
19 май 10, 08:16    [8796628]     Ответить | Цитировать Сообщить модератору
Все форумы / IBM DB2, WebSphere, IMS, U2, etc Ответить