You need a function like this :
CREATE OR REPLACE FUNCTION array_srf( integer[] ) RETURNS SETOF integer LANGUAGE PLPGSQL etc... AS
$$
DECLARE
_data ALIAS FOR $1;
_i INTEGER;
BEGIN
FOR _i IN 1..icount(_data) LOOP
RETURN NEXT _data[_i];
END LOOP;
RETURN;
END;
$$
select * from array_srf('{1,2,3,4}'); array_srf ----------- 1 2 3 4 (4 lignes)
This will avoid you the UNION.
Hello all. I'd like to write a query does a set subtraction A - B, but A is
is a set of constants that I need to provide in the query as immediate
values. I thought of something like
select a from (1,2,3.4) except select col_name from table;
but I don't know the syntax to specify my set of constants. I thought of
doing
select 1 union select 2 union select 3 union ... except ...
but I figure there must be a better way. The size of the set would be
anywhere between 1 and about 5 or 6 elements. Is there a better way to do
this?
Thanks.
Luca
---------------------------(end of broadcast)--------------------------- TIP 8: explain analyze is your friend
---------------------------(end of broadcast)--------------------------- TIP 2: you can get off all lists at once with the unregister command (send "unregister YourEmailAddressHere" to [EMAIL PROTECTED])