PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Име на XML елемент от данни в Postgres

Не е възможно да се използва която и да е SQL/XML функция с динамичен таг. Можете да използвате format функция.

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Какво е PostgreSQL?

  2. Ролята за премахване на PostgreSQL е неуспешна поради привилегии по подразбиране

  3. Извличане на данни от PostgreSQL с помощта на Powershell

  4. Избиране на произволни редове

  5. Обявяване на Barman 1.0, Backup and Recovery Manager за PostgreSQL