У меня есть таблица t1
, как показано ниже:
create table t1 (
person_id int,
item_name varchar(30),
item_value varchar(100)
);
В этой таблице пять записей:
person_id | item_name | item_value
1 'NAME' 'john'
1 'GENDER' 'M'
1 'DOB' '1970/02/01'
1 'M_PHONE' '1234567890'
1 'ADDRESS' 'Some Addresses unknown'
Теперь я хочу использовать функцию кросс-таблицы для извлечения NAME
, GENDER
данных, поэтому я пишу SQL в виде:
select * from crosstab(
'select person_id, item_name, item_value from t1
where person_id=1 and item_name in ('NAME', 'GENDER') ')
as virtual_table (person_id int, NAME varchar, GENDER varchar)
Моя проблема в том, что, как вы видите, SQL в crosstab()
содержит условие item_name
, что приведет к кавычкамбыть неверным.Как мне решить проблему?