sql >> Databasteknik >  >> RDS >> PostgreSQL

Citattecken felaktigt när du använder crosstab() i PostgreSQL

För att undvika förvirring om hur man undviker enstaka citattecken och generellt förenkla syntaxen, använd dollarnotering för frågesträngen:

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)

Och du bör lägga till ORDER BY till din frågesträng. Jag citerar handboken för tablefunc-modulen :

Mer information:



  1. Hitta icke-ASCII-tecken i varchar-kolumner med SQL Server

  2. MySQL får ordnad lista över kontakter efter senaste meddelande skickat/mottaget

  3. Hibernate - Hur ger man rätt mappning till heltalstyp?

  4. Vad är gränsen för SQL-variabler man kan specificera i en enda execSQL-fråga