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

Chọn tên và giá trị cột từ bảng

Tất nhiên, bạn có thể viết một hàm PL / pgSQL và truy vấn bảng danh mục pg_attribute chính bạn. Nhưng nó dễ dàng hơn nhiều với một trong những cách sau:

JSON

Hàm row_to_json() cung cấp chức năng đi được một nửa chặng đường. Được giới thiệu với Postgres 9.2 :

SELECT row_to_json(t, TRUE) FROM tbl t;

Bạn không cần phải đề cập đến tên cột, hàm lấy chúng từ loại bảng.

-> Bản trình diễn SQLfiddle.

Nhưng bạn sẽ cần json_each_text() từ Postgres 9.3 để đi hết chặng đường:

SELECT json_each_text(row_to_json(t)) FROM tbl t;

Để có thứ tự sắp xếp như bạn hiển thị:

SELECT (json_each_text(row_to_json(t))).*
FROM   tbl t
ORDER  BY 1, 2;

(Không rõ bạn muốn sắp xếp chính xác như thế nào.)
Chưa được kiểm tra. SQLfiddle chưa cung cấp Postgres 9.3.

hstore

Tuy nhiên, bạn có thể làm tương tự với mô-đun bổ sung hstore . Có sẵn kể từ 8.4 . Cài đặt nó một lần với:

CREATE EXTENSION hstore;

Chi tiết:
Cặp giá trị chính trong PostgreSQL

Truy vấn:

SELECT (each(hstore(t))).*
FROM   tbl t
ORDER  BY 1,2;

Đó là tất cả.
Một lần nữa, không có SQLfiddle, vì người ta không thể cài đặt các mô-đun bổ sung ở đó.



  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ú pháp không chính xác gần 'PROCEDURE' postgresql

  2. Chỉ mục bảng cho cột mảng Văn bản []

  3. Nhiều lệnh gọi array_agg () trong một truy vấn

  4. Cơ sở dữ liệu bền vững bằng cách sử dụng khối lượng docker

  5. Làm cách nào để gửi email từ trình kích hoạt PostgreSQL?