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

स्तंभों के लिए PostgreSQL पंक्ति

सबसे पहले, crosstab() फ़ंक्शन का परिवार मानक PostgreSQL में स्थापित नहीं है। आपको एक्सटेंशन tablefunc install इंस्टॉल करना होगा इसके लिए। PostgreSQL 9.1 में आप बस:

CREATE EXTENSION tablefunc;

पुराने संस्करणों के लिए इस संबंधित उत्तर पर एक नज़र डालें।

क्वेरी

क्वेरी इस तरह दिख सकती है:

SELECT *
FROM   crosstab (
        'SELECT l.id
               ,c.column_name
               ,c.data
         FROM   custom_columns_table c
         JOIN   list_table l ON l.id = c.list_id
         ORDER  BY 1',

        'SELECT DISTINCT column_name
         FROM   custom_columns_table
         ORDER  BY 1')
AS tbl (
    id integer
   ,email text
   ,name text
   );

मैं crosstab() . के रूप का उपयोग करता हूं दो मापदंडों के साथ, क्योंकि यह लापता विशेषताओं की अनुमति देता है। जैसे, जब किसी व्यक्ति के पास ईमेल न हो। फिर यह फॉर्म NULL लौटाएगा email . के लिए कॉलम। विस्तृत विवरण:

  • PostgreSQL क्रॉसस्टैब क्वेरी

फ़ंक्शन

या एक फ़ंक्शन बनाएं ताकि आपको प्रत्येक कॉल के लिए कॉलम परिभाषा सूची की आपूर्ति न करनी पड़े:

CREATE OR REPLACE FUNCTION f_mycross(text, text)
  RETURNS TABLE (
    id integer
   ,email text
   ,name text)
  AS '$libdir/tablefunc','crosstab_hash' LANGUAGE C STABLE STRICT;

कॉल करें:

SELECT * FROM f_mycross(
       'SELECT l.id
              ,c.column_name
              ,c.data
        FROM   custom_columns_table c
        JOIN   list_table l ON l.id = c.list_id
        ORDER  BY 1',
    
       'SELECT DISTINCT column_name
        FROM   custom_columns_table
        ORDER  BY 1')



  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 में JSON फ़ाइल कैसे आयात कर सकता हूं?

  2. PostgreSQL सुरक्षा_बैरियर दृश्य कैसे काम करते हैं?

  3. विंडोज़ में पोस्टग्रेस्क्ल श्रवण बंदरगाह कैसे बदलें?

  4. डेटाबेस क्वेरी करने के लिए Django प्रपत्र (मॉडल)

  5. पोस्टग्रेज में UPDATE RETURNING क्लॉज से चयन नहीं किया जा सकता