PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Tên phần tử XML từ dữ liệu trong Postgres

Không thể sử dụng bất kỳ hàm SQL / XML nào với tên thẻ động. Bạn có thể sử dụng định dạng format chức năng.

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. Có cách nào để thay đổi dấu thời gian mặc định của Rails thành Y-m-d H:i:s (thay vì Y-m-d H:i:s.u) hoặc yêu cầu laravel bỏ qua phần thập phân của Y-m-d H:i:s.u không?

  2. Cách xử lý các diễn biến cơ sở dữ liệu Play Framework 2 trong quá trình sản xuất

  3. GROUP hoặc DISTINCT sau khi JOIN trả về các bản sao

  4. currval Hàm trong PostgreSQL phàn nàn rằng cột không tồn tại

  5. Kiểm tra giá trị bằng current_setting ()