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

Postgres:sửa đổi từng phần tử mảng

Bạn cần tách ra, phân chia, sau đó tổng hợp lại.

update the_table
  set the_array = array(select t.val / 10 
                        from unnest(the_table.the_array) as t(val));

Nếu bạn cần duy trì thứ tự ban đầu trong mảng, hãy sử dụng with ordinality

update the_table
  set the_array = array(select t.val / 10 
                        from unnest(the_table.the_array) with ordinality as t(val,idx) 
                        order by t.idx);

Để chạy điều này trong Liquibase, bạn cần sử dụng <sql> thay đổi

Ví dụ trực tuyến: https://rextester.com/IJGA96691




  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 THEO các ngày liên tiếp được phân định bằng khoảng trống

  2. Postgres truy vấn SQL lồng nhau để đếm trường

  3. Nhóm theo khoảng dữ liệu

  4. postgres bế tắc mà không có khóa rõ ràng

  5. Cách lấy bản ghi có giá trị cao thứ hai đến thấp nhất dựa trên thứ tự theo trường trong PostgreSQL