выбрать столбцы в запросе выбора из другой таблицы сопоставления - PullRequest
0 голосов
/ 14 декабря 2018

Я ищу запрос на выборку с динамическими именами столбцов, которые могут быть получены из другой таблицы.Ниже приведен пример данных и запроса, которые я хочу получить.

create table mapping_tmp (
string_number  varchar,
mapping_name varchar
)

create table fact_tmp (
product varchar,
product_family varchar,
string1 varchar,
string2  varchar,
string3 varchar,
string4 varchar,
string5 varchar
)

insert into mapping_tmp values ('string1','commodity');
insert into mapping_tmp values ('string2','real commodity');
insert into mapping_tmp values ('string3','country');
insert into mapping_tmp values ('string4','region');
insert into mapping_tmp values ('string5','area');

insert into fact_tmp values ('P1','PF1','ABC1','DEF1','GHI1','JKL1','MNO1');
insert into fact_tmp values ('P2','PF2','ABC2','DEF2','GHI2','JKL2','MNO2');
insert into fact_tmp values ('P3','PF3','ABC3','DEF3','GHI3','JKL3','MNO3');
insert into fact_tmp values ('P4','PF4','ABC4','DEF4','GHI4','JKL4','MNO4');
insert into fact_tmp values ('P5','PF5','ABC5','DEF5','GHI5','JKL5','MNO5');
insert into fact_tmp values ('P6','PF6','ABC6','DEF6','GHI6','JKL6','MNO6');

Ожидаемый вывод, поля выбора должны быть взяты из mapping_tmp, и данные этих полей должны отображаться в результате выбора.

select product,
(select string_number from mapping_tmp where mapping_name = 'country') as country,
(select string_number from mapping_tmp where mapping_name = 'area') as area
from fact_tmp;

Фактическим запросом является выбор продукта, строка3 как страна, строка5 как область из fact_tmp;

и вывод:

product country area
1   P1  GHI1    MNO1
2   P2  GHI2    MNO2
3   P3  GHI3    MNO3
4   P4  GHI4    MNO4
5   P5  GHI5    MNO5
6   P6  GHI6    MNO6

Я ищу простой запрос SQL, я не могу использовать хранимую процедуруили функция в приложении.

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