изменение вывода запроса с использованием sql - PullRequest
0 голосов
/ 27 апреля 2018

Как преобразовать вывод sql в приведенный ниже формат для следующей таблицы?

Таблица

Date(col 1) Name(col 2)  Value(col 3))
2018-03-05 A_SPACE       5534
2018-03-05 B_SPACE        34324
2018-03-06 A_SPACE       4645
2018-03-06 B_SPACE        435

Ожидаемый формат

Date            A_SPACE     B_SPACE     
---             ---             ---         
2018-03-05      5534            34324   
2018-03-06      4645            435

Ответы [ 2 ]

0 голосов
/ 28 апреля 2018

Попробуйте это.

SELECT * 
FROM tablename PIVOT( Max(value) FOR NAME IN('A_SPACE','B_SPACE')) 
ORDER BY dates;

Демо: http://www.sqlfiddle.com/#!4/d97ee/23/0

Если вам нужен динамический поворот, обратитесь к этим статьям.

https://technology.amis.nl/2006/05/24/dynamic-sql-pivoting-stealing-antons-thunder/
Динамический поворот в oracle sql
динамические столбцы в Oracle с использованием sql

0 голосов
/ 27 апреля 2018

Если у вас есть таблица , самый простой способ - это условное агрегирование:

select date,
       sum(case when name = 'A_SPACE' then value else 0 end) as a_space,
       sum(case when name = 'B_SPACE' then value else 0 end) as b_space
from t
group by date
order by date;

Если ваша таблица является результатом запроса, вы, вероятно, можете включить подобную логику в запрос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...