PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Cara membagi array menjadi baris di Postgresql

Saya menyarankan agar Anda memutakhirkan versi Postgres Anda. Semua versi yang didukung mendukung unnest() :

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

Di versi sebelumnya, Anda dapat mencoba untuk memilihnya satu per satu. Berikut ini diuji dan berfungsi, meskipun dalam 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. Amazon Aurora PostgreSQL PILIH KE OUTFILE S3

  2. Bagaimana cara awalan nama urutan?

  3. gitlab Error 500 setelah memperbarui saat melihat proyek

  4. PSQLException tidak tertangkap

  5. Bagaimana Asinh() Bekerja di PostgreSQL