create a 'range' of dates/numbers?

Started by Erwin Mollerover 17 years ago6 messagesgeneral
Jump to latest
#1Erwin Moller
erwin@darwine.nl

Hi,

Is it possible to create a range of dates or numbers inside a query
without wrining in procedural language?
I am looking for something that creates some kind of 'temp table' inside
a query.
eg:
[wrong/fantasy syntax]
SELECT (1 to 3 step 1) as number;
desired output:
number
1
2
3

I have been looking through the manual, but cannot find anything. Maybe
it doesn't exist.

Thanks for your time.

Regards,
Erwin Moller

#2Grzegorz Jaśkiewicz
gryzman@gmail.com
In reply to: Erwin Moller (#1)
Re: create a 'range' of dates/numbers?

generate_series()
http://www.postgresql.org/docs/8.3/interactive/functions-srf.html

select generate_series(1,3);

In reply to: Erwin Moller (#1)
Re: create a 'range' of dates/numbers?

On 19/12/2008 10:28, Erwin Moller wrote:

Is it possible to create a range of dates or numbers inside a query
without wrining in procedural language?
I am looking for something that creates some kind of 'temp table' inside
a query.

Have a look at the generate_series() function in the manual - if memory
serves, there's an example there of creating a series of dates.

Ray.

------------------------------------------------------------------
Raymond O'Donnell, Director of Music, Galway Cathedral, Ireland
rod@iol.ie
Galway Cathedral Recitals: http://www.galwaycathedral.org/recitals
------------------------------------------------------------------

#4A. Kretschmer
andreas.kretschmer@schollglas.com
In reply to: Erwin Moller (#1)
Re: create a 'range' of dates/numbers?

In response to Erwin Moller :

Hi,

Is it possible to create a range of dates or numbers inside a query
without wrining in procedural language?
I am looking for something that creates some kind of 'temp table' inside
a query.
eg:

generate_Series():

test=# select * from generate_Series(1,5);
generate_series
-----------------
1
2
3
4
5
(5 rows)

test=*# select current_date + s * '1day'::interval from
generate_Series(1,5)s;
?column?
---------------------
2008-12-20 00:00:00
2008-12-21 00:00:00
2008-12-22 00:00:00
2008-12-23 00:00:00
2008-12-24 00:00:00
(5 rows)

Andreas
--
Andreas Kretschmer
Kontakt: Heynitz: 035242/47150, D1: 0160/7141639 (mehr: -> Header)
GnuPG-ID: 0x3FFF606C, privat 0x7F4584DA http://wwwkeys.de.pgp.net

#5Thomas Markus
t.markus@proventis.net
In reply to: Erwin Moller (#1)
Re: create a 'range' of dates/numbers?

try function generateseries

thomas

Erwin Moller schrieb:

Hi,

Is it possible to create a range of dates or numbers inside a query
without wrining in procedural language?
I am looking for something that creates some kind of 'temp table'
inside a query.
eg:
[wrong/fantasy syntax]
SELECT (1 to 3 step 1) as number;
desired output:
number
1
2
3

I have been looking through the manual, but cannot find anything.
Maybe it doesn't exist.

Thanks for your time.

Regards,
Erwin Moller

--
Thomas Markus

====================================================
proventis GmbH | Zimmerstr. 79-81 | D-10117 Berlin |
Tel +49 (0)30 2936399-22 | Fax -50 | t.markus@proventis.net
-----------------------------------------------------------------
Gesch�ftsf�hrer: Norman Frischmuth | Sitz: Berlin
Handelsregister: AG Berlin-Charlottenburg, HR 82917
-----------------------------------------------------------------
Blue Ant-webbasiertes Projektmanagement - aktuelle Termine 2008:
http://www.proventis.net/website/live/blueant/veranstaltungen.html
====================================================

#6Erwin Moller
erwin@darwine.nl
In reply to: A. Kretschmer (#4)
Re: create a 'range' of dates/numbers?

A. Kretschmer schreef:

In response to Erwin Moller :

Hi,

Is it possible to create a range of dates or numbers inside a query
without wrining in procedural language?
I am looking for something that creates some kind of 'temp table' inside
a query.
eg:

generate_Series():

test=# select * from generate_Series(1,5);
generate_series
-----------------
1
2
3
4
5
(5 rows)

test=*# select current_date + s * '1day'::interval from
generate_Series(1,5)s;
?column?
---------------------
2008-12-20 00:00:00
2008-12-21 00:00:00
2008-12-22 00:00:00
2008-12-23 00:00:00
2008-12-24 00:00:00
(5 rows)

Andreas

Wow, you ARE fast. :-)

Thanks a lot all, excactly what I was looking for!

Regards,
Erwin Moller