PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

तालिका से कॉलम का नाम और मान चुनें

बेशक, आप एक PL/pgSQL फ़ंक्शन लिख सकते हैं और कैटलॉग तालिका pg_attribute स्वयं। लेकिन निम्न में से किसी एक के साथ यह इतना आसान है:

JSON

फ़ंक्शन row_to_json() कार्यक्षमता प्रदान करता है जो आधे रास्ते तक जाती है। पोस्टग्रेज के साथ पेश किया गया 9.2 :

SELECT row_to_json(t, TRUE) FROM tbl t;

आपको कॉलम नामों का उल्लेख करने की आवश्यकता नहीं है, फ़ंक्शन उन्हें तालिका प्रकार से प्राप्त करता है।

->SQLfiddle डेमो.

लेकिन आपको आवश्यकता होगी json_each_text() पोस्टग्रेज से 9.3 सभी तरह से जाने के लिए:

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

जैसा आप प्रदर्शित करते हैं वैसा क्रम क्रम प्राप्त करने के लिए:

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

(यह स्पष्ट नहीं है कि आप सटीक रूप से कैसे क्रमित करना चाहते हैं।)
परीक्षण नहीं किया गया। SQLfiddle अभी तक Postgres 9.3 प्रदान नहीं करता है।

hstore

हालांकि, आप अतिरिक्त मॉड्यूल के साथ भी ऐसा कर सकते हैं। एचस्टोर . 8.4 . से उपलब्ध है . इसे एक बार इसके साथ स्थापित करें:

CREATE EXTENSION hstore;

विवरण:
PostgreSQL में की वैल्यू पेयर

प्रश्न:

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

बस इतना ही।
फिर से, कोई SQLfiddle नहीं, क्योंकि कोई वहां अतिरिक्त मॉड्यूल स्थापित नहीं कर सकता।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. कॉलम सूचीबद्ध किए बिना, प्रत्येक कॉलम पर समान एकत्रीकरण कैसे करें?

  2. संभावित पोस्टग्रेस पंक्ति ताले कैसे जारी करें?

  3. PostgreSQL 11 - प्रक्रियाएं

  4. WHERE क्लॉज में ST_Intersects का उपयोग कैसे करें

  5. ON DELETE SET NULL in postgres