PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Pilih nama kolom dan nilai dari tabel

Tentu saja, Anda dapat menulis fungsi PL/pgSQL dan menanyakan tabel katalog pg_attribute dirimu sendiri. Tapi itu jauh lebih mudah dengan salah satu dari berikut ini:

JSON

Fungsi row_to_json() menyediakan fungsionalitas yang berjalan setengah jalan. Diperkenalkan dengan Postgres 9.2 :

SELECT row_to_json(t, TRUE) FROM tbl t;

Anda tidak perlu menyebutkan nama kolom sama sekali, fungsi mengambilnya dari tipe tabel.

->Demo SQLfiddle.

Tetapi Anda memerlukan json_each_text() dari Postgres 9.3 untuk pergi jauh-jauh:

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

Untuk mendapatkan pengurutan seperti yang Anda tampilkan:

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

(Tidak jelas bagaimana Anda ingin mengurutkan dengan tepat.)
Belum diuji. SQLfiddle belum menyediakan Postgres 9.3.

hstore

Namun, Anda dapat melakukan hal yang sama dengan modul tambahan hstore . Tersedia sejak 8.4 . Instal sekali dengan:

CREATE EXTENSION hstore;

Detail:
Pasangan nilai kunci di PostgreSQL

Pertanyaan:

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

Itu saja.
Sekali lagi, tidak ada SQLfiddle, karena seseorang tidak dapat menginstal modul tambahan di sana.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Perbarui beberapa kolom dalam fungsi pemicu di plpgsql

  2. Nama kolom dengan jeda baris

  3. PostgreSQL:RANGE ANTARA INTERVAL '10 HARI' DAN BARIS LANCAR

  4. Hibernate dan Postgresql - kelas generator dalam file pemetaan hibernasi

  5. PostgreSQL regexp_replace dengan ekspresi yang cocok