PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Virgolette errate quando si utilizza crosstab() in PostgreSQL

Per evitare qualsiasi confusione su come evitare le virgolette singole e in generale semplificare la sintassi, utilizzare quotazione del dollaro per la stringa di query:

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)

E dovresti aggiungere ORDER BY alla tua stringa di query. Cito il manuale per il modulo tablefunc :

Maggiori dettagli: