PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Как да изпълним заявка за избор в DO блок?

DO команда срещу функция PL/pgSQL

DO командата не връща редове. Можете да изпращате NOTICES или RAISE други съобщения (с език plpgsql) или можете да пишете във (временна) таблица и по-късно SELECT от него, за да заобиколите това.

Но наистина, създайте вместо това функция (plpgsql), където можете да дефинирате тип връщане с RETURNS клауза или OUT / INOUT параметри и връщане от функцията по различни начини.

Ако не искате функция да бъде запазена и видима за други връзки, помислете за „временна“ функция, която е недокументирана, но добре установена функция:

  • Как да създадем временна функция в PostgreSQL?

generate_series() за наличен проблем

За разглеждания проблем изглежда не се нуждаете от никакъв от това. Вместо това използвайте тази проста заявка:

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<>цигулка тук

Защо?

  • Генериране на времеви серии между две дати в 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. Изпълнение на PostgreSQL с помощта на Amazon RDS

  2. Как можете да свържете активните потребители към PostgreSQL база данни чрез SQL?

  3. Изброяване и превключване на бази данни в PostgreSQL

  4. изградете SQL динамична заявка с psycopg2 python библиотека и използвайки добри инструменти за тип преобразуване

  5. Разгръщане на клъстер в множество облаци на PostgreSQL