case statement as inline function?

From: Mike Nolan <nolan(at)gw(dot)tssi(dot)com>
To: pgsql-general(at)postgresql(dot)org (pgsql general list)
Subject: case statement as inline function?
Date: 2004-03-24 16:33:39
Message-ID: 200403241633.i2OGXeLa032518@gw.tssi.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Periodically I need to write a complex case statement that I'd like to
be able to refer to in more than one place in a SQL command without having
to make sure that each copy of the case statement remains the same as
the query (to produce a mailing) is tailored.

Is there any way to treat it like an inline function so that I could write
something like the following (highly simplified):

select case when A=1 then 1 when B=1 then 2 else null end
as mailtype, memname from master
where mailtype is not null;

I could do it as a user function, though that would be less convenient during
the specification phase, which may happen every few days. However, the
columns referred to in the case statement can change too. Is there a way
to pass the entire set of columns in a table to a function?
--
Mike Nolan

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Richard Huxton 2004-03-24 16:36:40 Re: unicode error and problem
Previous Message Joshua D. Drake 2004-03-24 16:28:53 Re: ole db