Thread: RE: [SQL] IIF..

RE: [SQL] IIF..

From
"Jackson, DeJuan"
Date:
It would be: SELECT (CASE Number           WHEN 1 THEN 'First'           ELSE 'Other'          END) AS Description
FROMTable
 
-DEJ

> -----Original Message-----
> Hi!
> 
> I'm new in the list (and in PostgreSQL too). I'd like to know 
> if it's posible to perform a function like SQL Server's "iif" 
> in a SELECT query. Some like:
> 
> SELECT iif (Number=1, "First", "Other") AS Description
> FROM Table;
> 
> I don't know if I've explained properly...
> --
> Eduardo Noeda  --  Virtual Software
> enoeda@virtualsw.es


Re: [SQL] IIF..

From
Clark Evans
Date:
"Jackson, DeJuan" wrote:
> It would be:
>   SELECT (CASE Number
>            WHEN 1 THEN 'First'
>            ELSE 'Other'
>           END) AS Description
>     FROM Table

Way cool.  A new trick for me.  
This is similar to DECODE, I assume.

However, I tried this test on a snapshot
about a week old, and this is the result:

> Welcome to the POSTGRESQL interactive sql monitor:
>   Please read the file COPYRIGHT for copyright terms of POSTGRESQL
> 
>    type \? for help on slash commands
>    type \q to quit
>    type \g or terminate with semicolon to execute query
>  You are currently connected to the database: clark
> 
> clark=> create table test (a text, b int4 );
> CREATE
> clark=> insert into test values ( 'one', 1);
> INSERT 18634 1
> clark=> insert into test values ( 'two', 2);
> INSERT 18635 1
> clark=> insert into test values ( null, null);
> INSERT 18636 
> clark=> select ( case b when 1 then 'first' else 'other' end ) as xx from test;
> ERROR:  copyObject: don't know how to copy 704
> clark=> 
> 

Did this work in earlier versions?  If so, then perhaps this
should be added to a regression test if it isn't already.

Best,

Clark