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

Trích xuất khóa, giá trị từ các đối tượng json trong Postgres

SELECT q.id, d.key, d.value
FROM q
JOIN json_each_text(q.data) d ON true
ORDER BY 1, 2;

Hàm json_each_text() là một hàm trả về tập hợp, vì vậy bạn nên sử dụng nó như một nguồn hàng. Đầu ra của hàm ở đây được tham gia theo chiều ngang vào bảng q , nghĩa là đối với mỗi hàng trong bảng, mỗi (key, value) ghép nối từ data cột chỉ được nối với hàng đó nên mối quan hệ giữa hàng gốc và các hàng được hình thành từ json đối tượng được duy trì.

Bảng q cũng có thể là một truy vấn phụ rất phức tạp (hoặc VALUES , như trong câu hỏi của bạn). Trong hàm, cột thích hợp được sử dụng từ kết quả đánh giá truy vấn phụ đó, vì vậy bạn chỉ sử dụng tham chiếu đến bí danh của truy vấn phụ và cột (bí danh của) trong truy vấn phụ.



  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 có chạy một số tối ưu hóa hiệu suất cho các giao dịch chỉ đọc không

  2. Làm thế nào để cài đặt im lặng Postgresql trong Ubuntu qua. Dockerfile?

  3. Định dạng ngày tháng trong PostgreSQL

  4. Cách tự động triển khai cơ sở dữ liệu PostgreSQL

  5. Làm cách nào để lấy tên cột danh sách và kiểu dữ liệu của bảng trong PostgreSQL?