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

XML-elementnavn fra data i Postgres

Det er ikke muligt at bruge nogen SQL/XML-funktion med dynamisk tagnavn. Du kan bruge et format funktion.

postgres=# SELECT * FROM foo;
┌──────┬──────┐
│  nm  │ val  │
╞══════╪══════╡
│ buy  │  100 │
│ sell │ 1000 │
│ buy  │  102 │
│ sell │ 1033 │
└──────┴──────┘
(4 rows)

postgres=# SELECT xmlelement(name "trades", xmlagg(x)) 
              FROM (SELECT format('<%1$s>%2$s</%1$s>', 
                                   nm, 
                                   xmlagg(xmlelement(name value, val)))::xml x 
                        FROM foo group by nm) s;
┌─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│                                                    xmlelement                                                       │
╞═════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╡
│ <trades><sell><value>1000</value><value>1033</value></sell><buy><value>100</value><value>102</value></buy></trades> │
└─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
(1 row)



  1. Python og MySQL Database:En praktisk introduktion

  2. Adgang nægtet for brugeren 'root'@'localhost' (ved hjælp af adgangskode:Ja) efter nulstilling af adgangskode LINUX

  3. ORA-31011:XML-parsing mislykkedes - ugyldige tegn (oracle sql)

  4. I stand til at oprette postgres-database på kommandolinjen, men ikke i bash-script