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

Откуда: Магнитогорск
Сообщений: 237
как есть                   как надо 


цех точка цех точка
1 12 1 12;13;14
1 13 2 23;25
1 14 3 30;31
2 23
2 25
3 30
3 31
28 авг 07, 11:03    [4584050]     Ответить | Цитировать Сообщить модератору
 Re: подскажите вариант исполнения  [new]
Elic
Member

Откуда:
Сообщений: 29991
RTFM ТОП №14. Как получить все значения одного поля в одной строке?
28 авг 07, 11:09    [4584095]     Ответить | Цитировать Сообщить модератору
 Re: подскажите вариант исполнения  [new]
Jannny
Member

Откуда: Спб
Сообщений: 6424
FAQ 14
28 авг 07, 11:09    [4584098]     Ответить | Цитировать Сообщить модератору
 Re: подскажите вариант исполнения  [new]
rus77
Member

Откуда: Магнитогорск
Сообщений: 237
благодарю
28 авг 07, 11:11    [4584112]     Ответить | Цитировать Сообщить модератору
 Re: подскажите вариант исполнения  [new]
dmidek
Member

Откуда: Киев - Дортмунд
Сообщений: 116328
Заранее прошу прощения - я все знаю и про микроскоп и про версию :-)
Будем считать, что это еще один вариант конкатенации +
практическое изучение мной MODEL
Основой решения послужил гораздо более сложный вариант Владимира Бегуна из пятничной задачи Elic

SQL> with tab1 as
  2  (select 1 tseh, 12 tochka
  3  from dual
  4  union all
  5  select 1 tseh, 13 tochka
  6  from dual
  7  union all
  8  select 1 tseh, 14 tochka
  9  from dual
 10  union all
 11  select 2 tseh, 23 tochka
 12  from dual
 13  union all
 14  select 2 tseh, 25 tochka
 15  from dual
 16  union all
 17  select 3 tseh, 30 tochka
 18  from dual
 19  union all
 20  select 3 tseh, 31 tochka
 21  from dual
 22  )
 23  select tseh, stroka
 24  from tab1
 25  model
 26  return updated rows
 27  partition by (tseh)
 28  dimension by (row_number() over (partition by tseh order by tochka) as rn)
 29  measures (tochka, CAST('' AS VARCHAR2(4000)) AS stroka)
 30  IGNORE NAV UNIQUE SINGLE REFERENCE
 31  RULES
 32  ITERATE(4294967295)
 33  UNTIL (PRESENTV(tochka[ITERATION_NUMBER + 1], 1, 0) = 0)
 34  (stroka[0] = CASE WHEN ITERATION_NUMBER = 1 THEN to_char(tochka[ITERATION_NUMBER])
 35                    ELSE stroka[0]||';'||to_char(tochka[ITERATION_NUMBER])
 36               END
 37  )
 38  order by tseh
 39  /
 
      TSEH STROKA
---------- --------------------------------------------------------------------------------
         1 12;13;14
         2 23;25
         3 30;31
 
SQL> 
28 авг 07, 12:50    [4585034]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить