Constructing column from different individual fields in same row. - Mailing list pgsql-general

From froggle2003@yahoo.com (Alex Martinoff)
Subject Constructing column from different individual fields in same row.
Date
Msg-id 34f50f10.0309092002.426246a4@posting.google.com
Whole thread Raw
Responses Re: Constructing column from different individual fields in same row.
Re: Constructing column from different individual fields
List pgsql-general
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

Or, is it necessary to waste storage by making prefname varchar(30)
and then duplicating the preferred name into the prefname field?

Thanks for any answers.

pgsql-general by date:

Previous
From: Bruno Wolff III
Date:
Subject: Re: The ..... worm
Next
From: "Bruno BAGUETTE"
Date:
Subject: RE : How to convert a UnixTimestamp to a PostgreSQL date without using ::abstime ?