За да избегнете объркване относно това как да избегнете единични кавички и като цяло да опростите синтаксиса, използвайте котиране на долари за низа на заявката:
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)
И трябва да добавите ORDER BY
към низа на вашата заявка. Цитирам ръководството за модула tablefunc
:
Повече подробности: