Thread: minimum function
Hi there, I'm busy writing a trigger function in pl/pgsql and find myself in need of a minimum() function. I can't see how the builtin min() aggregate function can be of any use here since all I want to do is something like SELECT minimum(5,6) => 5 Any way I can achieve that on one line? I.e. I want it simpler than IF arg1 < arg2 THEN RETURN arg1; ELSE RETURN arg2; END IF; Gunther
On 23/06/2007 17:17, Gunther Mayer wrote: > Any way I can achieve that on one line? I.e. I want it simpler than > > IF arg1 < arg2 THEN > RETURN arg1; > ELSE > RETURN arg2; > END IF; That looks pretty simple already, but why not enclose it in a pl/pgsql function - something like: create function minimum(a1 integer, a2 integer) returns integer as $$ begin if a1 < a2 then return a1; else return a2; end if; end; $$ language plpgsql; - and then you can call it in one line: select minimum(5, 4); Ray. --------------------------------------------------------------- Raymond O'Donnell, Director of Music, Galway Cathedral, Ireland rod@iol.ie ---------------------------------------------------------------
Check out greatest() and least()... (I think ;) On Sat, 23 Jun 2007 18:35:36 +0200, Raymond O'Donnell <rod@iol.ie> wrote: > On 23/06/2007 17:17, Gunther Mayer wrote: > >> Any way I can achieve that on one line? I.e. I want it simpler than >> IF arg1 < arg2 THEN >> RETURN arg1; >> ELSE >> RETURN arg2; >> END IF; > > That looks pretty simple already, but why not enclose it in a pl/pgsql > function - something like: > > create function minimum(a1 integer, a2 integer) returns integer as > $$ > begin > if a1 < a2 then > return a1; > else > return a2; > end if; > end; > $$ > language plpgsql; > > - and then you can call it in one line: > > select minimum(5, 4); > > > Ray. > > > --------------------------------------------------------------- > Raymond O'Donnell, Director of Music, Galway Cathedral, Ireland > rod@iol.ie > --------------------------------------------------------------- > > ---------------------------(end of broadcast)--------------------------- > TIP 4: Have you searched our list archives? > > http://archives.postgresql.org/
On Sat, Jun 23, 2007 at 06:17:03PM +0200, Gunther Mayer wrote: > Hi there, > > I'm busy writing a trigger function in pl/pgsql and find myself in need > of a minimum() function. I can't see how the builtin min() aggregate > function can be of any use here since all I want to do is something like > > SELECT minimum(5,6) => 5 There are the functions int4larger/int4smaller. There are equivalent function for other types. Have a nice day, -- Martijn van Oosterhout <kleptog@svana.org> http://svana.org/kleptog/ > From each according to his ability. To each according to his ability to litigate.
Attachment
Gunther Mayer <gunther.mayer@googlemail.com> writes: > SELECT minimum(5,6) => 5 You're looking for the least/greatest functions (in 8.1 and up IIRC). regards, tom lane
Tom Lane wrote: > Gunther Mayer <gunther.mayer@googlemail.com> writes: > >> SELECT minimum(5,6) => 5 >> > > You're looking for the least/greatest functions (in 8.1 and up IIRC). > > regards, tom lane > Awesome, that's exactly what I was looking for. My pl/pgsql minimum() hack is gonna go in the dumpster now ;-) Thanks so much guys. Gunther P.S.: Can't believe I didn't spot that in the documentation, that's what happens in the rare cases of using the wrong search terms...