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

Tạo chuỗi từ mảng

bạn có thể kết hợp các phép toán đa hợp như create_subscripts và mảng để nhận được kết quả:

with mtab as (
      SELECT id, name, array_append(arrayofparents,id) as arrayofparents,
      generate_subscripts(array_append(arrayofparents, id), 1) AS p_id FROM tab where id=2
)
select distinct array_to_string(
  array(
    select tab.name from tab join mtab t on tab.id=t.arrayofparents[t.p_id]
  ), '->'
) ;

ví dụ trực tiếp Sqlfiddle

hoặc sử dụng kết hợp bên ngoài kết hợp với bất kỳ:

SELECT coalesce(string_agg(p.name, '->') || '->' || t.name, t.name) AS parentnames
FROM tab AS t
  LEFT JOIN tab AS p ON p.id = ANY(t.arrayofparents)
 where t.id =7 
GROUP BY t.id, t.name

ví dụ trực tiếp Sqlfiddle



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Nhóm kết nối Jboss AS7 sẽ không kết nối lại

  2. Trước và sau khi kích hoạt trên cùng một sự kiện? Điền vào bảng con PostgreSQL

  3. dữ liệu bổ sung sau cột dự kiến ​​cuối cùng trong khi cố gắng nhập tệp csv vào postgresql

  4. Phạm vi cho một liên kết has_one tùy chọn với chính nó

  5. Làm cách nào để cài đặt pg gem của PostgreSQL trên Ubuntu?