pg.ddx.io  pgsql-sql@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: CoL <col@mportal.hu>
To: pgsql-sql@postgresql.org
Subject: Re: Check a value in array
Date: Fri, 30 Apr 2004 14:14:04 +0200
Message-ID: <c6tfud$1lai$1@news.hub.org> (raw)
In-Reply-To: <1083313092.7734.3.camel@macbeth.intranet.noze.it>
References: <1083260230.20352.7.camel@macbeth.intranet.noze.it>
	<1083261407.30065.303.camel@jester>
	<1083313092.7734.3.camel@macbeth.intranet.noze.it>

hi,

Marco Lazzeri wrote:

> Il gio, 2004-04-29 alle 19:56, Rod Taylor ha scritto:
> 
>>On Thu, 2004-04-29 at 13:37, Marco Lazzeri wrote:
>>
>>>Hi all.
>>>
>>>I have to check if a value is in an array.
>>>
>>>I've got a date array in a table and I would like to perform queries
>>>like:
>>>
>>>SELECT * FROM table WHERE date IN dates_array;
>>
>>If you're using 7.4 or later, try:
>>
>>	SELECT * FROM table WHERE date = ANY(dates_array);
>>
>>This will work without the contrib package.
> 
> Thank you Rod, I forgot to specify I'm using PostgreSQL 7.3.5.

or, you can write a procedure, and make and it immutable:)

CREATE OR REPLACE FUNCTION in_array (numeric [], numeric) RETURNS 
boolean AS'
declare
array_to alias for $1;
array_value alias for $2;
i integer default 1;
begin
while array_to[i] is not null loop
  if array_value = array_to[i] then
     return true;
  end if;
  i := i+1;
end loop;
return false;
end;
'LANGUAGE 'plpgsql' immutable RETURNS NULL ON NULL INPUT SECURITY INVOKER;

change the numeric to your specified type and:

WHERE in_array(dates_array,date) = true

C.



view thread (5+ messages)  latest in thread

Message-ID: <c6tfud$1lai$1@news.hub.org>
Permalink:  ../c6tfud$1lai$1@news.hub.org/
Also on:    postgresql.org/message-id/c6tfud$1lai$1@news.hub.org

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-sql@postgresql.org
  Cc: col@mportal.hu
  Subject: Re: Check a value in array
  In-Reply-To: <c6tfud$1lai$1@news.hub.org>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox