बेशक, आप एक PL/pgSQL फ़ंक्शन लिख सकते हैं और कैटलॉग तालिका pg_attribute
स्वयं। लेकिन निम्न में से किसी एक के साथ यह इतना आसान है:
JSON
फ़ंक्शन row_to_json()
कार्यक्षमता प्रदान करता है जो आधे रास्ते तक जाती है। पोस्टग्रेज के साथ पेश किया गया 9.2 :
SELECT row_to_json(t, TRUE) FROM tbl t;
आपको कॉलम नामों का उल्लेख करने की आवश्यकता नहीं है, फ़ंक्शन उन्हें तालिका प्रकार से प्राप्त करता है।
लेकिन आपको आवश्यकता होगी 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 नहीं, क्योंकि कोई वहां अतिरिक्त मॉड्यूल स्थापित नहीं कर सकता।