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

Postgres - Làm cách nào để chuyển đổi hàng có phạm vi int thành các hàng trung gian từ các giá trị riêng lẻ từ phạm vi đó?

Sử dụng generate_series() :

select gs.i, t.*
from t cross join lateral
     generate_series(start_i, end_i, 1) gs(i);

Nói một cách chính xác, lateral là không cần thiết. Nhưng nó giải thích những gì đang xảy ra. Tôi cũng nên lưu ý rằng bạn cũng có thể làm:

select generate_series(start_i, end_i) as i, t.*
from t;

Tuy nhiên, generate_series() ảnh hưởng đến số hàng trong truy vấn. Tôi không thoải mái với việc có những hiệu ứng như vậy trong SELECT mệnh đề.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ứng dụng để giám sát các truy vấn PostgreSQL trong thời gian thực?

  2. Hiệu suất PostgreSQL của SQL đặc biệt so với các hàm

  3. Truy xuất nhiều hàng với truy vấn bằng cách sử dụng VÀ và HOẶC

  4. Khi gọi DB ::chọn tại sao tôi nhận được thông báo Kết nối đã được đặt lại?

  5. Khôi phục các bản ghi đã xóa trong PostgreSQL