PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Bagaimana cara melakukan kueri pemilihan di blok DO?

DO perintah vs. fungsi PL/pgSQL

DO perintah tidak mengembalikan baris. Anda dapat mengirim NOTICES atau RAISE pesan lain (dengan bahasa plpgsql) atau Anda dapat menulis ke tabel (sementara) dan kemudian SELECT dari itu untuk menyiasatinya.

Tapi sungguh, buat fungsi (plpgsql) sebagai gantinya, di mana Anda dapat menentukan tipe pengembalian dengan RETURNS klausa atau OUT / INOUT parameter dan kembali dari fungsi dengan berbagai cara.

Jika Anda tidak ingin fungsi disimpan dan terlihat untuk koneksi lain, pertimbangkan fungsi "sementara", yang merupakan fitur yang tidak didokumentasikan tetapi sudah mapan:

  • Bagaimana cara membuat fungsi sementara di PostgreSQL?

generate_series() untuk masalah yang dihadapi

Untuk masalah yang ada, Anda sepertinya tidak membutuhkan apa pun ini. Gunakan kueri sederhana ini sebagai gantinya:

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<>main biola di sini

Mengapa?

  • Membuat deret waktu antara dua tanggal di 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. Mengotomatiskan Barman dengan Wayang:it2ndq/barman (bagian dua)

  2. Cara Mengubah Pengguna menjadi Pengguna Super di PostgreSQL

  3. Pisahkan kolom menjadi beberapa baris di Postgres

  4. Membuat pemicu untuk penyisipan tabel anak mengembalikan kesalahan yang membingungkan

  5. Rumus Koefisien Korelasi Pearson dalam SQL