| From: | "Esa Pikkarainen" <epikkara(at)ktk(dot)oulu(dot)fi> | 
|---|---|
| To: | "Oliver Elphick" <olly(at)lfix(dot)co(dot)uk> | 
| Cc: | pgsql-general(at)postgresql(dot)org | 
| Subject: | Re: If test in sql?? | 
| Date: | 2001-01-25 08:01:21 | 
| Message-ID: | 68DF80E622F@ktk.oulu.fi | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-general | 
Thank you very much. Fine! Just two little questiton s more:
1) Can COALESCE take more than two alternatives?
2) Does it treat a zero length string as NULL or NOT NULL?
Esa Pikkarainen
Oliver Elphick wrote (24 Jan 01,):
> "Esa Pikkarainen" wrote:
>   >This is maybe a novice question, but after all...
>   >Say, I have a discussion forum application. There is an expiration 
>   >value for a whole board; then there are individual values for every 
>   >conference. If this individual value is NULL then the general value 
>   >should be used. How can I test this situation in a query (to 
>   >Postgresql):
>   >I mean something like: 
>   >
>   >  Select (IF conf.expire NOTNULL conf.expire ELSE gen_expire) 
>   >  as expire, ...
>   >
>   >Where is this in manuals if it is?
>  
> SELECT COALESCE(expire, gen_expire) AS expire FROM conf;
> 
> COALESCE takes the first non-null value from its list of parameters, like
> this:
> 
> junk=# select * from junk where name is null;
>  id | name 
> ----+------
>   3 | 
> (1 row)
> 
> junk=# select id, coalesce(name,'no-name') from junk;
>  id |  case   
> ----+---------
>   1 | Fred
>   2 | George
>   4 | sdf%df
>   3 | no-name
> (4 rows)
> 
> -- 
> Oliver Elphick                                Oliver(dot)Elphick(at)lfix(dot)co(dot)uk
> Isle of Wight                              http://www.lfix.co.uk/oliver
> PGP: 1024R/32B8FAA1: 97 EA 1D 47 72 3F 28 47  6B 7E 39 CC 56 E4 C1 47
> GPG: 1024D/3E1D0C1C: CA12 09E0 E8D5 8870 5839  932A 614D 4C34 3E1D 0C1C
>                  ========================================
>      "If anyone has material possessions and sees his
>       brother in need but has no pity on him, how can the
>       love of God be in him?"
>                                     I John 3:17 
> 
> 
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Anthony E . Greene | 2001-01-25 08:09:43 | Re: Data Import | 
| Previous Message | Dan Wilson | 2001-01-25 07:45:06 | UNION on views in 7.1 |