John R Pierce wrote
> On 12/2/2013 3:46 PM, Nick wrote:
>> Hello I am new to this site and also a student. I am working on an
>> assignment
>> and was wondering if there is a way to make an alias for a boolean? For
>> example when I am making a table called club_games and it must contain
>> the
>> memberID, gameID, count, and status as column fields. When I enter the
>> data
>> for status I want it to say either "unavailable" for false and
>> "available"
>> for true. but I don't know how to do that.
>
> you could use an enum, or you could use a case statement on your query,
> like,
>
> SELECT memberID, gameID, hardwareID, count, case when status then
> 'available' else 'unavailable' end FROM club_Games
Not sure an enum would work since the source table has the "status" column
defined as boolean...
Condition conversion requires the use of the "CASE" expression. One point
not made is that the column allows for NULL. I like to avoid 3-value logic
thinking when possible so I'd suggest:
CASE WHEN status IS NULL THEN 'Unknown'
WHEN status = true THEN 'Available'
ELSE 'Unavailable'
END::varchar AS status_description
Then, if you need the logic elsewhere put that into a SQL function so you
can change the words without having to change every location the conversion
may be used.
You may also want a "description_to_status" function to perform the inverse.
David J.
--
View this message in context:
http://postgresql.1045698.n5.nabble.com/Inserting-boolean-types-as-an-alias-tp5781328p5781337.html
Sent from the PostgreSQL - general mailing list archive at Nabble.com.