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

SQL nhiều UNNEST trong một danh sách chọn

Đây không phải là vấn đề không tốt như vậy, mà là về cách xử lý rất kỳ lạ của PostgreSQL đối với nhiều hàm trả về bộ trả về trong SELECT danh sách. Đặt các hàm trả về trong SELECT không phải là một phần của tiêu chuẩn ANSI SQL.

Bạn sẽ thấy hành vi tốt hơn nhiều với LATERAL các truy vấn, nên được ưu tiên hơn so với việc sử dụng hàm set-return trong FROM càng nhiều càng tốt:

select a, b FROM unnest(array[1,2]) a, LATERAL unnest(array[1,2,3]) b;

ví dụ:

regress=> select a, b FROM unnest(array[1,2]) a, LATERAL unnest(array[1,2,3]) b;
 a | b 
---+---
 1 | 1
 1 | 2
 1 | 3
 2 | 1
 2 | 2
 2 | 3
(6 rows)

Lần duy nhất tôi vẫn sử dụng nhiều hàm trả về thiết lập trong SELECT là khi tôi muốn ghép nối các giá trị từ các hàm mà cả hai đều trả về cùng một số hàng. Nhu cầu về điều đó sẽ không còn nữa trong 9.4, với đa đối số unnest và với sự hỗ trợ cho WITH ORDINALITY .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ScaleGrid PostgreSQL trên Cơ sở hạ tầng đám mây VMware

  2. Làm cách nào để bạn làm cho Python / PostgreSQL nhanh hơn?

  3. Chỉ định múi giờ để sử dụng làm múi giờ tham chiếu

  4. Sqlalchemy có thể hoạt động tốt với nhiều tệp cơ sở dữ liệu SQLite đính kèm không?

  5. [] chuỗi thành jsonb với Gorm và postgres