On Tue, 23 Sep 2003, Steve Crawford wrote:
> Having a requirement to change null into a certain value in a query I
> created a couple versions of an ifnull function as follows:
>
> create or replace function "ifnull" (text, text) returns text as '
> begin
> if $1 is null
> then
> return $2;
> else
> return $1;
> end if;
> end;' language 'plpgsql';
>
> create or replace function "ifnull2" (text, text) returns text as '
> select case when $1 is null then $2 else $1 end;
> ' language 'sql';
>
> The functions work fine but I have some questions:
>
> 1. Did I overlook a better builtin function?
coalesce
3. You get your function called sometimes without error for other data types
because of implicit casting to text type.
> steve=# select ifnull(null,5::int);
> ifnull
> --------
> 5
I could have sworn int to text wasn't an implicit cast now. Damn memory.
--
Nigel J. Andrews