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

ऑरैकल में एकाधिक पंक्तियों को लौटाने वाले एकाधिक चुनिंदा प्रश्नों के साथ एक दृश्य कैसे बनाएं?

आप PIVOT . का उपयोग कर सकते हैं विश्लेषणात्मक कार्य सहित खंड ROW_NUMBER() :

SELECT "search", "Social"
  FROM (
        SELECT t.*,
               ROW_NUMBER() OVER (PARTITION BY category ORDER BY url) AS rn
          FROM t
        )
 PIVOT
    (
     MAX(url) FOR category IN ( 'search' AS "search", 'Social' AS "Social" )
    )
 ORDER BY rn

और अगर SELECT स्टेटमेंट इस भाग CREATE OR REPLACE VIEW v1 AS द्वारा तैयार किया गया है , तो आपके पास v1 . नाम के साथ एक नया डेटाबेस दृश्य होगा उस कथन की सामग्री को

. द्वारा लौटाना
SELECT * FROM v1

डेमो

अपडेट करें: आपके पास अभी भी धुरी को गतिशील बनाने का विकल्प है वर्तमान की तुलना में आगामी विभिन्न श्रेणी मान बनाम। REFCURSOR . सहित एक फ़ंक्शन (या प्रक्रिया) बनाएं जैसे;

CREATE OR REPLACE FUNCTION Get_Categories_RS RETURN SYS_REFCURSOR IS
  v_recordset SYS_REFCURSOR;
  v_sql       VARCHAR2(32767);
  v_str       VARCHAR2(32767);
BEGIN
  SELECT LISTAGG( ''''||category||''' AS "'||LOWER(category)||'"' , ',' )
                 WITHIN GROUP ( ORDER BY category )
    INTO v_str
    FROM (
          SELECT DISTINCT category
            FROM t
          );

  v_sql :=
  'SELECT *
     FROM (
           SELECT t.*,
                  ROW_NUMBER() OVER (PARTITION BY category ORDER BY url) AS rn
             FROM t
          )
    PIVOT
    (
     MAX(url) FOR category IN ( '|| v_str ||' )
    )
    ORDER BY rn';

  OPEN v_recordset FOR v_sql;
  RETURN v_recordset;
END;

और फिर यह कोड चलाएँ:

VAR rc REFCURSOR
EXEC :rc := Get_Categories_RS;
PRINT rc

एसक्यूएल डेवलपर . से परिणाम सेट देखने के लिए कमांड लाइन।




  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. चयन में अनुक्रम संख्या उत्पन्न करें

  4. जुलाई 2016 पीएसयू इस्कोरा बनाने में विफल

  5. ओरेकल में लोअरकेस अक्षरों वाली पंक्तियों को खोजने के 4 तरीके