PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Guillemet incorrect lors de l'utilisation de crosstab() dans PostgreSQL

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 :