powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / unpivot
10 сообщений из 10, страница 1 из 1
unpivot
    #39447780
maxwait
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день! подскажите пожалуйста. как сделать
есть запрос
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
select value
from
    (
        select t.col1 r1_1
            , t.col2 r1_2
            , t.col3 r1_3
        from tabl t
    )
    unpivot
    (
        value
        for value_type in
            (r1_1, r1_2, r1_3)
    )


все хорошо работает, но вот хочу сделать вторым столбцом наименование значения, типа такого...
но как правильно не соображу
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
select value
from
    (
        select t.col1 r1_1
            , 'Наименование поля 1' n1_1
            , t.col2 r1_2
            , 'Наименование поля 2' n1_2
            , t.col3 r1_3
            , 'Наименование поля 3' n1_3
        from tabl t
    )
    unpivot
    (
        value
        for value_type in
            (r1_1, r1_2, r1_3)
    )



чтобы получился результат
1 , 'Наименование поля 1'
2 , 'Наименование поля 2'
3 , 'Наименование поля 3'

Заранее спасибо!
...
Рейтинг: 0 / 0
unpivot
    #39447804
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maxwait,

В интернетах искал?
...
Рейтинг: 0 / 0
unpivot
    #39447819
мистер with
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maxwait, у меня тоже не работает. Говорит "table or view does not exist". Что будем делать?
...
Рейтинг: 0 / 0
unpivot
    #39447871
maxwait
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
env,

Да этот пример видел
'direct' AS Store, 'online' AS Internet
но у меня название полей могут меняться в зависимости от условий.
...
Рейтинг: 0 / 0
unpivot
    #39447873
maxwait
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мистер with,

не совсем понял, о чем это Вы?
...
Рейтинг: 0 / 0
unpivot
    #39447875
maxwait
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Небольшое уточнение ...
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
select value
from
    (
        select t.col1 r1_1
            , case when t.col1 = 1 then  'Наименование поля 1'  else 'Наименование поля 1_1' end n1_1 
            , t.col2 r1_2
            , 'Наименование поля 2' n1_2
            , t.col3 r1_3
            , case when t.col3 = 100500 then  'Наименование поля 3'  else 'Наименование поля 1_3' end n1_3
        from tabl t
    )
    unpivot
    (
        value
        for value_type in
            (r1_1, r1_2, r1_3)
    )
...
Рейтинг: 0 / 0
unpivot
    #39447879
Vint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maxwait,
да хоть зауточняйся. динамический набор столбцов только в xml. иди учись читать доку.
...
Рейтинг: 0 / 0
unpivot
    #39447891
MaximaXXL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maxwaitНебольшое уточнение ...
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
select value
from
    (
        select t.col1 r1_1
            , case when t.col1 = 1 then  'Наименование поля 1'  else 'Наименование поля 1_1' end n1_1 
            , t.col2 r1_2
            , 'Наименование поля 2' n1_2
            , t.col3 r1_3
            , case when t.col3 = 100500 then  'Наименование поля 3'  else 'Наименование поля 1_3' end n1_3
        from tabl t
    )
    unpivot
    (
        value
        for value_type in
            (r1_1, r1_2, r1_3)
    )



ой мать ...
я не очень понял что вы хотели написать ... но могу предложить какнить так:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
select value, decode(value_type, 'R1_1',  'Наименование поля 1', 'R1_2',  'Наименование поля 2', 'R1_3',  'Наименование поля 3') vt
from
    (
        select t.col1 r1_1
            , t.col2 r1_2
            , t.col3 r1_3
        from tabl t
    )
    unpivot
    (
        value
        for value_type in
            (r1_1, r1_2, r1_3)
    )
...
Рейтинг: 0 / 0
unpivot
    #39447906
MaximaXXL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maxwait,

Вы можете конечно поизголяться кейсами, но уже в результирующей выборке ...
не самая прозрачная задача но написать как-то так

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
select value, 
case 
when value_type = 'R1_1' and value = 1 then 'Наименование поля 1'
when value_type = 'R1_1' then 'Наименование поля 1_1'
when value_type = 'R1_2' then 'Наименование поля 2'
when value_type = 'R1_3' and value = 100500  then 'Наименование поля 3'
when value_type = 'R1_3' then 'Наименование поля 1_3'
end Comment_field
(...)
...
Рейтинг: 0 / 0
unpivot
    #39447924
maxwait
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MaximaXXL,

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


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