Alex Martinoff wrote:

> I'm wondering if it's possible to have a query construct a column
> where the value of the column at each row is taken from another field
> in that same row. For example, suppose you have a table like:
> 
> create table users (
>       uid serial,
>       nickname varchar(20),
>       realname varchar(30),
>       prefname int2,
>       primary key (uid)
> );
> 
> insert into users (nickname, realname, prefname)
> values ('Stevo', 'Steve Sullivan', 1);
> 
> insert into users (nickname, realname, prefname)
> values ('Johnny Boy', 'John Fisk', 2);
> 
> 
> A prefname of 1 means the user prefers their nickname, while 2 means
> they prefer their realname.
> 
> Is there a query I can perform that would return:
> 
>  uid | Preferred Name
> -----+----------------
>    1 | Stevo
>    2 | John Fisk


SELECT uid, (CASE WHEN prefname = 1 THEN nickname ELSE realname END)
AS "Preferred Name"
FROM users
WHERE ...

HTH,

Mike Mascari
[EMAIL PROTECTED]


---------------------------(end of broadcast)---------------------------
TIP 1: subscribe and unsubscribe commands go to [EMAIL PROTECTED]

Reply via email to