From: | Andrew Perrin <aperrin(at)socrates(dot)berkeley(dot)edu> |
---|---|
To: | pgsql-sql(at)postgresql(dot)org |
Subject: | PL/PgSQL and NULL |
Date: | 2001-03-11 20:38:13 |
Message-ID: | Pine.LNX.4.21.0103111536210.6221-100000@nujoma.perrins |
Views: | Whole Thread | Raw Message | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-sql |
Greetings-
I'm trying to write what should be a simple function that returns the
minimim of two integers. The complication is that when one of the two
integers is NULL, it should return the other; and when both are NULL, it
should return NULL. Here's what I've written:
CREATE FUNCTION min(int4, int4)
RETURNS int4
AS 'BEGIN
IF $1 ISNULL
THEN
RETURN $2;
ELSE
IF $2 ISNULL
THEN
RETURN $1;
ELSE
IF $1 > $2
THEN
RETURN $2;
ELSE
RETURN $1;
END IF;
END IF;
END IF;
END;'
LANGUAGE 'plpgsql';
and here's what I get:
fgdata=# select min(10, NULL);
min
-----
(1 row)
so it looks like, for whatever reason, it's returning NULL when it should
be returning 10. Can anyone offer advice?
Thanks.
----------------------------------------------------------------------
Andrew J Perrin - Ph.D. Candidate, UC Berkeley, Dept. of Sociology
Chapel Hill, North Carolina, USA - http://demog.berkeley.edu/~aperrin
aperrin(at)socrates(dot)berkeley(dot)edu - aperrin(at)igc(dot)apc(dot)org
From | Date | Subject | |
---|---|---|---|
Next Message | Peter Eisentraut | 2001-03-11 21:38:10 | Re: PL/PgSQL and NULL |
Previous Message | Peter Eisentraut | 2001-03-10 23:01:44 | Re: recompiling to use gnu readline? |