On Fri, 2007-02-23 at 19:25 +0100, Stefan Becker wrote:
> dear SQL friends,
>
> What I want to do might be done differantly. Right now I can't
> think of another solution other than a select statement
>
> I would like to create a sequence range of integer constants. Join
> this sequence against a ID Range in a database and look for missing
> Id's.
>
> Another application for this would be to simply populate a database with
> say 1000..9999 Records....
>
> Now: Is there a syntax that allows for the following.....
>
> create table XX (id int);
> insert into XX (select xx from "1 to 1000" of integers)
>
> or...
>
> select IntSeq.MissingValues, x.UniqIntId,x.A,x.B,x.C,
> from MyDataTable x
> left outer join
> (
> select MissingValues from "1 to 1000" of integers
> ) IntSeq on MissingValues=x.UniqIntId
>
>
> I'm hoping that someone has done this and might be able to
> point to some function or methode to do this
Maybe something like this will help:
SELECT id
FROM generate_series(1, (SELECT last_value FROM id_seq)) AS s(id)
EXCEPT
SELECT UniqIntId FROM MyDataTable
ORDER BY id;
The id_seq is the sequence on your ID column, assuming it has one, or
you can replace the (SELECT ... FROM id_seq) by 1000.
Joe