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

PostgreSQL chuyển đổi mảng được trả về từ hàm thành cột

bạn có thể sử dụng một lựa chọn phụ không?

postgres=# select ar[1], ar[2] from (select string_to_array('a b c', ' ') ar) as sq;
 ar | ar 
----+----
 a  | b
(1 row)

Điều này vẫn yêu cầu bạn trích xuất rõ ràng từng cột (giống như bạn đã làm). Nếu có nhiều phần tử hơn trong mảng được trích xuất, chúng sẽ bị mất và nếu có ít hơn, thì các cột bị thiếu sẽ chỉ là NULL .

CHỈNH SỬA:Tôi nghĩ rằng tôi sẽ gói toàn bộ điều trong một lựa chọn con; lựa chọn con bên trong tạo ra hàng mong muốn , với lựa chọn bên ngoài chiếu truy vấn bên trong vào các cột mong muốn :

SELECT subquery1.a, subquery1.b, subquery1.c, 
    myfunction_result[1], myfunction_result[2] 
FROM ( SELECT table1.a, table1.b, table1.c,
              MyFunction(table1.a, table1.b, table1.c) as myfunction_result
       FROM table1 INNER JOIN table2 using(b) 
       WHERE ... GROUP BY table1.a, table1.b, table1.c
) AS subquery1;

Lựa chọn bên trong và bên ngoài sẽ tương quan đúng với table1 tài liệu tham khảo.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Công cụ so sánh dữ liệu PostgreSQL

  2. Ràng buộc duy nhất của Postgres không thực thi tính duy nhất

  3. Lỗi:Không có mô-đun nào có tên psycopg2.extensions

  4. LƯU Ý cho trình tự sau khi chạy di chuyển trong đường ray trên Ứng dụng postgresql

  5. Tạo một hàm trong Postgresql không trả về giá trị tổng hợp