DO
commando vs. PL/pgSQL-functie
De DO
commando retourneert geen rijen. U kunt NOTICES
. verzenden of RAISE
andere berichten (met taal plpgsql) of u kunt naar een (tijdelijke) tabel schrijven en later SELECT
om dit te omzeilen.
Maar echt, maak in plaats daarvan een (plpgsql) functie, waar u een retourtype kunt definiëren met de RETURNS
clausule of OUT
/ INOUT
parameters en terugkeer van de functie op verschillende manieren.
Als u niet wilt dat een functie wordt opgeslagen en zichtbaar is voor andere verbindingen, overweeg dan een "tijdelijke" functie, een ongedocumenteerde maar goed ingeburgerde functie:
- Hoe maak je een tijdelijke functie in PostgreSQL?
generate_series()
voor probleem bij de hand
Voor het probleem lijkt u geen nodig te hebben van dit. Gebruik in plaats daarvan deze eenvoudige vraag:
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<>viool hier
Waarom?
- Tijdreeksen genereren tussen twee datums in PostgreSQL