PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Chia cột thành nhiều hàng trong Postgres

Trong Postgres 9.3+ sử dụng LATERAL tham gia:

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

Đó là một LATERAL ngầm hiểu tham gia. If unnest() không trả về bất kỳ hàng nào (trống hoặc NULL subject ), kết quả sẽ không có hàng nào cả. Sử dụng LEFT JOIN unnest(...) i ON true để luôn trả về các hàng từ tbl . Xem:

  • Sự khác biệt giữa LATERAL JOIN và một truy vấn con trong PostgreSQL là gì?

Bạn cũng có thể sử dụng regexp_split_to_table() , nhưng điều đó thường chậm hơn vì so khớp biểu thức chính quy tốn nhiều hơn một chút. Có liên quan:

  • SQL chọn các hàng có chứa chuỗi con trong trường văn bản
  • PostgreSQL unnest () với số phần tử


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. IntegrityError giá trị khóa trùng lặp vi phạm ràng buộc duy nhất - django / postgres

  2. Không thể kết nối với cơ sở dữ liệu postgresql của heroku từ ứng dụng nút cục bộ với phần tiếp theo

  3. Cách bật đăng nhập truy vấn chậm trong PostgreSQL

  4. Giới hạn quyền truy cập của người dùng PostgreSQL bằng lược đồ và chế độ xem

  5. PostgreSQL Streaming Replication so với Logical Replication