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

Pisahkan kolom menjadi beberapa baris di Postgres

Di Postgres 9.3+ gunakan LATERAL bergabung:

SELECT s.token, flag
FROM   tbl t, unnest(string_to_array(t.subject, ' ')) s(token)
WHERE  flag = 2;

Ini adalah LATERAL implicit implisit Ikuti. Jika unnest() tidak mengembalikan baris apa pun (kosong atau NULL subject ), hasilnya tidak akan ada baris sama sekali. Gunakan LEFT JOIN unnest(...) i ON true untuk selalu mengembalikan baris dari tbl . Lihat:

  • Apa perbedaan antara LATERAL JOIN dan subquery di PostgreSQL?

Anda juga dapat menggunakan regexp_split_to_table() , tapi itu biasanya lebih lambat karena pencocokan ekspresi reguler sedikit lebih mahal. Terkait:

  • SQL pilih baris yang berisi substring di bidang teks
  • PostgreSQL unnest() dengan nomor elemen


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mengkompilasi ekstensi mongo_fdw yang dapat ditulis pada format biner instalasi PostgreSQL.

  2. Bagaimana saya bisa mengimpor data dari ASCII (ISO/IEC 8859-1) ke database Rails/PGSQL saya?

  3. Cara Memeriksa apakah Array PostgreSQL Berisi Nilai

  4. Pengujian Otomatis Cadangan PostgreSQL

  5. Penjajaran planet