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

Postgresql में सरणी को पंक्तियों में कैसे विभाजित करें?

मेरा सुझाव है कि आप पोस्टग्रेज के अपने संस्करण को अपग्रेड करें। सभी समर्थित संस्करण unnest() . का समर्थन करते हैं :

SELECT x.*
FROM (SELECT id, UNNEST(selected_placements) as selected_placement
      FROM  app_data.content_cards
     ) x
WHERE selected_placement IS NOT NULL;

पुराने संस्करणों में, आप उन्हें एक बार में चुनने का प्रयास कर सकते हैं। निम्नलिखित का परीक्षण किया गया है और काम करता है, यद्यपि 9.5 में:

with content_cards as (
     select 1 as id, array['a', 'b', 'c'] as selected_placements
    )
SELECT id, selected_placements[num] as selected_placement
FROM (SELECT cc.*, generate_series(1, ccup.maxup) as num
      FROM content_cards cc CROSS JOIN
           (SELECT MAX(ARRAY_UPPER(cc.selected_placements, 1)) as maxup
            FROM content_cards cc
           ) ccup
     ) x
WHERE selected_placements[num]  IS NOT NULL;



  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. Postgresql में आईडी कॉलम स्थिति महत्वपूर्ण है?

  3. Postgres . में चुनिंदा कथन में अभिव्यक्ति का मूल्यांकन कैसे करें

  4. घातक:निजी कुंजी फ़ाइल /etc/ssl/private/ssl-cert-snakeoil.key तक नहीं पहुंच सका:अनुमति अस्वीकृत

  5. फ़ंक्शन UNIX_TIMESTAMP मौजूद नहीं है