Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Запрос для дополнения пустыми записями  [new]
Non-Grata
Member

Откуда:
Сообщений: 193
Доброе время суток! Возникла необходимость сделать одно "извращение", но не могу понять, как. Допустим, есть таблица :
KOD  NOM   KODOV
23    1      45
23    2      55
13    1      34
13    3      55
13    2      56
16    1      34
16    2      55
16    3      56
16    4      57
По полю KOD идёт связка с главной таблицей, но это не суть. Мне надо составить запрос, чтобы получить данные в виде:
KOD  NOM   KODOV
23    1      45
23    2      55
23  NULL    NULL
23  NULL    NULL
13    1      34
13    3      55
13    2      56
13  NULL    NULL
16    1      34
16    2      55
16    3      56
16    4      57
То есть для каждого KOD дополнить, если нужно, с помощью NULL количество записей до 4-х. Больше 4-х записей с одинаковым KOD быть не может. Помогите, заранее благодарен.
12 мар 08, 12:18    [5398586]     Ответить | Цитировать Сообщить модератору
 Re: Запрос для дополнения пустыми записями  [new]
Jannny
Member

Откуда: Спб
Сообщений: 6424
10ка:
select t.*
FROM t
partition by (kod)
right outer join (select level lev from dual connect by level <= 4) on lev = nom
order by kod, nom
12 мар 08, 12:42    [5398817]     Ответить | Цитировать Сообщить модератору
 Re: Запрос для дополнения пустыми записями  [new]
Non-Grata
Member

Откуда:
Сообщений: 193
Большое спасибо. Пора осваивать аналитические функции :-)
12 мар 08, 12:51    [5398892]     Ответить | Цитировать Сообщить модератору
 Re: Запрос для дополнения пустыми записями  [new]
Jannny
Member

Откуда: Спб
Сообщений: 6424
Non-Grata
Пора осваивать аналитические функции :-)
Это правда, аналитику надо осваивать. Вот только в данном примере ее не было :)
12 мар 08, 12:53    [5398916]     Ответить | Цитировать Сообщить модератору
 Re: Запрос для дополнения пустыми записями  [new]
Jannny
Member

Откуда: Спб
Сообщений: 6424
FYI:
partitioned outer join
12 мар 08, 12:55    [5398945]     Ответить | Цитировать Сообщить модератору
 Re: Запрос для дополнения пустыми записями  [new]
Non-Grata
Member

Откуда:
Сообщений: 193
Раз уже пошла такая пруха, то ещё вопрос:
Как мне запросом к моей первоначальной таблице получить следующее:
KOD  NOM   KODOV
23  NULL    NULL
23  NULL    NULL
23  NULL    NULL
23  NULL    NULL
13  NULL    NULL
13  NULL    NULL
13  NULL    NULL
13  NULL    NULL
16  NULL    NULL
16  NULL    NULL
16  NULL    NULL
16  NULL    NULL
Т.е. по 4 NULL для каждого KOD. Я затем хочу UNION-ом добавить полученные значения к таблице, отсортировать по nom и выбрать первых 4 записи. Предложенный вариант мне немного не подходит, т.к. я уж слишком упростил исходную задачу :-)
12 мар 08, 13:10    [5399096]     Ответить | Цитировать Сообщить модератору
 Re: Запрос для дополнения пустыми записями  [new]
Maxim Demenko
Member

Откуда: Munich, Germany
Сообщений: 940
Change
on lev = nom
to
on 1=2
Best regards

Maxim
12 мар 08, 13:23    [5399201]     Ответить | Цитировать Сообщить модератору
 Re: Запрос для дополнения пустыми записями  [new]
orawish
Member

Откуда: Гадюкино-2 (City)
Сообщений: 15487
Non-Grata
..Т.е. по 4 NULL для каждого KOD..

select tname
  from tab,(select null from dual connect by level<=4)
 order by 1;
12 мар 08, 13:28    [5399242]     Ответить | Цитировать Сообщить модератору
 Re: Запрос для дополнения пустыми записями  [new]
Volder
Member

Откуда: Москва
Сообщений: 474
orawish
Non-Grata
..Т.е. по 4 NULL для каждого KOD..

select tname
  from tab,(select null from dual connect by level<=4)
 order by 1;
колонка KOD у товарища не уникальные значения содержит
12 мар 08, 13:36    [5399298]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить