Verwenden Sie Dollar-Quote für die Abfragezeichenfolge:
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)
Und Sie sollten ORDER BY
hinzufügen zu Ihrer Abfragezeichenfolge. Ich zitiere das Handbuch für das Modul tablefunc
:
Weitere Einzelheiten: