powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Значение строк в столбцах
5 сообщений из 5, страница 1 из 1
Значение строк в столбцах
    #40060484
007alex3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет!

Есть такая таблица:

Код: plsql
1.
2.
3.
4.
5.
select 1 as id_c, 1 as term ,'Alex' as name_c
        from dual
         union all
         select 1 as id_c , 2 as term ,'Dima' as name_c
        from dual



Могу ли из неё сделать таблицу следующего вида?

Код: plsql
1.
2.
select 1 as id_c,'Alex' as name_c1 ,'Dima' as name_c2
        from dual



То есть на выходе я хочу получить piplined функцию со столбцами, которые формируются из значений в столбце term, а заполняются данные столбцы значениями из столбца name_c. Смог сделать скрипт с таким выводом через refcursor, но затем задача немного изменилась и нужно сделать вывод через табличную функцию.
Подскажите, пожалуйста, то , что я хочу сделать в принципе возможно?
...
Рейтинг: 0 / 0
Значение строк в столбцах
    #40060498
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
007alex3,

pilot,
или по старинке
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
SQL> ed
Wrote file afiedt.buf

  1  with t as (
  2  select 1 as id_c, 1 as term ,'Alex' as name_c
  3  from dual
  4  union all
  5  select 1 as id_c , 2 as term ,'Dima' as name_c
  6  from dual)
  7  select
  8   id_c
  9   ,max(decode(term,1,name_c)) n1
 10   ,max(decode(term,2,name_c)) n2
 11  from t
 12* group by id_c
SQL> /

      ID_C N1   N2
---------- ---- ----
         1 Alex Dima



если к-во клонок неопределено

0) на клиенте
1) pilot хмл
2) формировать динамиченски

.....
stax
...
Рейтинг: 0 / 0
Значение строк в столбцах
    #40060501
007alex3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Stax, спасибо за помощь.

Тут скорее проблема в том, что значений в столбце term, по которому далее образуются столбцы, может быть сколько угодно.
Подскажите, а что это означает:
0) на клиенте ?
...
Рейтинг: 0 / 0
Значение строк в столбцах
    #40060590
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
007alex3

0) на клиенте ?

не на стороне базы
репорт/отчетная система/ехсел
да что угодно, хоть дельфи

.....
stax
...
Рейтинг: 0 / 0
Значение строк в столбцах
    #40060984
007alex3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Stax, попробовал сделать с помощью pivot, в принципе вышло, то , что задумывал, но возник ещё один вопрос.

Данный скрипт работает как нужно:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
with t as (
    select 1 as id_c, 1 as term ,10 as win_amount,15 as win_count
    from dual
    union all
    select 1 as id_c , 2 as term ,20 as win_amount,25 as win_count
    from dual)
select *
from  (

select *
from t   
)
PIVOT
(
  sum(win_count) as win_count,sum(win_amount) as win_amount
  FOR term IN (1, 2)
)



Но т.к. в столбце term может быть какое угодно число значений (до 100,уникальные) немного поменял pivot:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
with t as (
    select 1 as id_c, 1 as term ,10 as win_amount,15 as win_count
    from dual
    union all
    select 1 as id_c , 2 as term ,20 as win_amount,25 as win_count
    from dual)
select *
from  (

select *
from t   
)
PIVOT xml
(
  sum(win_count) as win_count,sum(win_amount) as win_amount
  FOR term IN (select term
              from t )
)



Возможно ли как - то преобразовать xmltype, который получается в pivot в обычный тип? Просто пробовал сделать через xmlserialize , но появляется ошибка 00904....

Модератор: Используйте тег SRC, а не SUP.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Значение строк в столбцах
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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