Re: Array intersection
От | Josh Trutwin |
---|---|
Тема | Re: Array intersection |
Дата | |
Msg-id | 20071017130048.0ddde862@sinkhole.intrcomm.net обсуждение исходный текст |
Ответ на | Re: Array intersection (Sam Mason <sam@samason.me.uk>) |
Ответы |
Re: Array intersection
|
Список | pgsql-general |
On Wed, 17 Oct 2007 17:42:21 +0100 Sam Mason <sam@samason.me.uk> wrote: <snip> > CREATE OR REPLACE FUNCTION array_intersect (array1 > INTEGER[],array2 INTEGER[]) RETURNS INTEGER[] AS $$ > DECLARE > out INTEGER[]; > BEGIN > out := '{}'::INTEGER[]; > IF array1 IS NULL OR array2 IS NULL THEN > RETURN NULL; > END IF; > FOR i IN array_lower(array1,1) .. array_upper(array1,1) LOOP > IF (array1[i] = ANY (array2)) AND NOT array1[i] = ANY > (out) THEN out := array_append(out,array1[i]); > END IF; > END LOOP; > RETURN out; > END; > $$ LANGUAGE PLPGSQL; Works like a champ on 8.1. Thanks! Did you see David Fetter's reply to the original post? He has an interesting alternative. Josh
В списке pgsql-general по дате отправления: