Обсуждение: create a 'range' of dates/numbers?

Поиск
Список
Период
Сортировка

create a 'range' of dates/numbers?

От
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:
[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


Re: create a 'range' of dates/numbers?

От
"Grzegorz Jaśkiewicz"
Дата:
generate_series()
http://www.postgresql.org/docs/8.3/interactive/functions-srf.html

select generate_series(1,3);

Re: create a 'range' of dates/numbers?

От
Raymond O'Donnell
Дата:
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
------------------------------------------------------------------

Re: create a 'range' of dates/numbers?

От
"A. Kretschmer"
Дата:
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

Re: create a 'range' of dates/numbers?

От
Thomas Markus
Дата:
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
====================================================


Вложения

Re: create a 'range' of dates/numbers?

От
Erwin Moller
Дата:
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