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

Làm thế nào để thực hiện một truy vấn chọn trong một khối DO?

DO lệnh so với hàm PL / pgSQL

DO lệnh không trả về hàng. Bạn có thể gửi NOTICES hoặc RAISE các thư khác (với ngôn ngữ plpgsql) hoặc bạn có thể ghi vào bảng (tạm thời) và sau đó SELECT từ nó để giải quyết vấn đề này.

Nhưng thực sự, hãy tạo một hàm (plpgsql) để thay thế, nơi bạn có thể xác định kiểu trả về bằng RETURNS mệnh đề hoặc OUT / INOUT và trả về từ hàm theo nhiều cách khác nhau.

Nếu bạn không muốn một chức năng được lưu và hiển thị cho các kết nối khác, hãy xem xét một chức năng "tạm thời", là một tính năng không có tài liệu nhưng được thiết lập tốt:

  • Cách tạo một hàm tạm thời trong PostgreSQL?

generate_series() cho vấn đề trong tầm tay

Đối với vấn đề đang xảy ra, bạn dường như không cần bất kỳ điều này. Sử dụng truy vấn đơn giản này để thay thế:

SELECT row_number() OVER ()    AS running_month
     , extract('year'  FROM m) AS year
     , extract('month' FROM m) AS month
FROM   generate_series(timestamp '2012-04-01'
                     , timestamp '2016-01-01'
                     , interval '1 month') m;

db <> fiddle here

Tại sao?

  • Tạo chuỗi thời gian giữa hai ngày trong PostgreSQL


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Biên dịch phần mở rộng mongo_fdw có thể ghi trên định dạng nhị phân của cài đặt PostgreSQL.

  2. Tập lệnh shell để thực thi các lệnh pgsql trong tệp

  3. postgres đổi tên cơ sở dữ liệu không hoạt động

  4. Cài đặt Odoo trên Mac Không thể Thực thi Lệnh LESSC

  5. Làm cách nào để lấy min / max của hai số nguyên trong Postgres / SQL?