Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / как сделать красиво / 8 сообщений из 8, страница 1 из 1
03.07.2006, 18:14
    #33828475
yaay
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как сделать красиво
из такой таблицы


Код: plaintext
1.
2.
3.
4.
5.
6.
LastName  | FirstName   | Hobby
____________________________________
Иванов    | Иван        | Спорт
Иванов    | Иван        | Машины
Петров    | Петр        | Животные
Петров    | Петр        | Деньги
Рожков    | Андрей      | Девушки

такую:

Код: plaintext
1.
2.
3.
4.
LastName  | FirstName   | Hobby
____________________________________
Иванов    | Иван        | Спорт Машины
Петров    | Петр        | Животные Деньги
Рожков    | Андрей      | Девушки
...
Рейтинг: 0 / 0
03.07.2006, 18:57
    #33828598
Mark Barinstein
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как сделать красиво
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
with a (LastName, FirstName, Hobby) as 
(
values
('Иванов'    , 'Иван'      , 'Спорт'    ),
('Иванов'    , 'Иван'      , 'Машины'   ),
('Петров'    , 'Петр'      , 'Животные' ),
('Петров'    , 'Петр'      , 'Деньги'   ),
('Рожков'    , 'Андрей'    , 'Девушки'  )
),
t (level, lastName, FirstName, hobby, Hobbys) as
(
select  1 , lastName, firstName, min(hobby), cast(min(hobby) as varchar( 100 ))
from a
group by lastName, firstName
  union all
select t.level+ 1 , t.lastName, t.firstName, a.hobby, t.hobbys||' '||a.hobby
from t, a
where t.lastName=a.lastName and t.firstName=a.firstName
and a.hobby=
(
select min(hobby) 
from a a2
where a2.lastName=t.lastName and a2.firstName=t.firstName
and a2.hobby>t.hobby
)
)
select g.lastName, g.FirstName, t.Hobbys
from t
join 
(
select lastName, FirstName, max(level) as level
from t 
group by lastName, FirstName
) g on t.lastName=g.lastName and t.firstName=g.firstName and t.level=g.level;
...
Рейтинг: 0 / 0
05.07.2006, 09:10
    #33831655
ппм
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как сделать красиво
красиво - сделать UDF, которая будучи использована с group by конкатенирует строки.
...
Рейтинг: 0 / 0
05.07.2006, 09:44
    #33831732
yaay
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как сделать красиво
а кстати можно из такой выборки

Код: plaintext
Select hobby from table 


Код: plaintext
1.
2.
3.
4.
Hobby
__________
Спорт
Машины
Животные

превратить в varchar для

Код: plaintext
Update table2 Set Hobby=?????

чтобы в результате было Hobby="Спорт Машины Животные"
...
Рейтинг: 0 / 0
05.07.2006, 10:56
    #33832030
Nikolay Kulikov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как сделать красиво
DB2 Cookbook

страница 345
...
Рейтинг: 0 / 0
05.07.2006, 11:24
    #33832155
yaay
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как сделать красиво
в моей DB2 UDB V8.1 SQL Cookbook такой страницы нет.

Можно название ф-ции. Спасибо.
...
Рейтинг: 0 / 0
05.07.2006, 12:19
    #33832392
Nikolay Kulikov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как сделать красиво
denormalize normalized data
...
Рейтинг: 0 / 0
05.07.2006, 15:34
    #33833180
Mark Barinstein
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как сделать красиво
yaayа кстати можно из такой выборки
Код: plaintext
Select hobby from table 
Код: plaintext
1.
2.
3.
4.
Hobby
__________
Спорт
Машины
Животные
превратить в varchar для
Код: plaintext
Update table2 Set Hobby=?????
чтобы в результате было Hobby="Спорт Машины Животные"
Так будет можно сделать, если написать UDF, которая будет принимать на вход
firstName, lastName
и возвращать сцепленные значения hobby для этой пары полей.
...
Рейтинг: 0 / 0
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / как сделать красиво / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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