Как отключить в SQL? (SAP HANA) (столбцы в строки) - PullRequest
1 голос
/ 05 февраля 2020

Мне нужно отключить некоторые данные в SAP HANA. Я создал пример таблицы, чтобы опробовать ее, но все равно нигде не могу.

Фактическая таблица содержит 1000 идентификаторов и ~ 50 столбцов, но я хочу сделать это для многих таблиц, поэтому, хотя я могу указать FieldNames (оригинальные столбцы), было бы неплохо иметь автоматизированное решение.

Вот пример таблицы, которую я настроил:

enter image description here

Я хотел бы получить результаты в этой форме:

enter image description here

Примечание: «?» представляет NULL.

Для создания таблицы примера:

create local temporary table #example
(
ID NVARCHAR(255),
Name NVARCHAR(255),
Country NVARCHAR(255),
Balance Decimal(18,2)
);

insert into #example values('ID1','Bill','USA', 100);
insert into #example values('ID2','','', 45);
insert into #example values('ID3', NULL,NULL, 768);
insert into #example values('ID4',NULL,'France', 42);

Ответы [ 2 ]

0 голосов
/ 06 февраля 2020

Создание хранилища значений ключей, такого как таблица, - неправильное решение в большинстве ситуаций, связанных с базами данных SQL. Тем не менее, с помощью HANA SDI / SDQ (Интеллектуальная интеграция данных / интеллектуальное качество данных) вы можете создать «потоковую диаграмму» (в основном процесс преобразования данных), которая выполняет операцию поворота / разворота без необходимости много кода.

0 голосов
/ 05 февраля 2020

Вот решение, которое требует от меня указать имена столбцов и преобразования типов:

(Кредит jarlh за предложение объединения)

select 
"ID",
'Country' as "FieldName",
"COUNTRY" as "FieldValue"
from #example
union all
select 
"ID",
'Name' as "FieldName",
"NAME" as "FieldValue"
from #example
union all
select 
"ID",
'Balance' as "FieldName",
CAST("BALANCE" as NVARCHAR) as "FieldValue"
from #example
...