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


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

такую:

Код: plaintext
1.
2.
3.
4.
LastName  | FirstName   | Hobby
____________________________________
Иванов    | Иван        | Спорт Машины
Петров    | Петр        | Животные Деньги
Рожков    | Андрей      | Девушки
...
Рейтинг: 0 / 0
как сделать красиво
    #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
как сделать красиво
    #33831655
ппм
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
красиво - сделать UDF, которая будучи использована с group by конкатенирует строки.
...
Рейтинг: 0 / 0
как сделать красиво
    #33831732
yaay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а кстати можно из такой выборки

Код: plaintext
Select hobby from table 


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

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

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

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

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

Можно название ф-ции. Спасибо.
...
Рейтинг: 0 / 0
как сделать красиво
    #33832392
Nikolay Kulikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
denormalize normalized data
...
Рейтинг: 0 / 0
как сделать красиво
    #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
8 сообщений из 8, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / как сделать красиво
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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