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

SQL में नेस्टेड चयन का उपयोग करते समय पिवट काम नहीं करता है

आप पिवट तालिका में इनपुट के रूप में सीधे गतिशील अभिव्यक्ति नहीं जोड़ सकते हैं, आप कुछ इस तरह की कोशिश कर सकते हैं जहां हम एक पीएल/एसक्यूएल ब्लॉक के माध्यम से एक चर में तालिका के सभी कॉलम पुनर्प्राप्त करते हैं और फिर इसे ओरेकल द्वारा अपेक्षित तरीके से पास करते हैं पिवट टेबल कार्यक्षमता।

SET serveroutput ON;


    DECLARE 
    sqlquery VARCHAR(32767);
    cols VARCHAR2(32767);
    BEGIN

      SELECT listagg('''' || column_name || '''',   ',') within
      GROUP(
      ORDER BY column_name)
      INTO cols
      FROM
        (SELECT DISTINCT column_name
         FROM all_tab_columns
         WHERE TABLE_NAME = 'TABLE_NAME')
      ;

      sqlquery := '      
    SELECT * FROM
    (
      SELECT table_name, column_name
      FROM ALL_TAB_COLUMNS
      WHERE
          table_name = ''TABLE_NAME''
    )
    PIVOT
    (
      MIN(column_name)
      FOR column_name IN ( 
            ''||cols||''
        )
      )
      ORDER BY table_name';

      DBMS_OUTPUT.PUT_LINE(sqlquery);

      EXECUTE IMMEDIATE sqlquery;

    END;
    /



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle SQL विसंगति:COUNT(*) बनाम वास्तविक परिणाम सेट

  2. पीएल/एसक्यूएल में किसी तालिका से पंक्ति प्रकार वापस करने के लिए फ़ंक्शन कैसे करें?

  3. हाइबरनेट क्वेरी लैंग्वेज में लेफ्ट जॉइन कैसे करें?

  4. मैं Oracle में row_number को कैसे गति दे सकता हूँ?

  5. 'स्ट्रिंग' बनाम ='स्ट्रिंग' का उपयोग करने के लिए ओरेकल में कोई प्रदर्शन प्रभाव?