Pour éviter toute confusion sur la façon d'échapper aux guillemets simples et simplifier généralement la syntaxe, utilisez guillemets en dollars pour la chaîne de requête :
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)
Et vous devez ajouter ORDER BY
à votre chaîne de requête. Je cite le manuel du module tablefunc
:
Plus de détails :