Re: [GENERAL] Where is IFNULL? - Mailing list pgsql-general

From Sascha Ziemann
Subject Re: [GENERAL] Where is IFNULL?
Date
Msg-id m3ogc2e88q.fsf@intra.do.khs-ag.de
Whole thread Raw
In response to Re: [GENERAL] Where is IFNULL?  ("Gene Selkov Jr." <selkovjr@selkovjr.xnet.com>)
List pgsql-general
"Gene Selkov Jr." <selkovjr@selkovjr.xnet.com>:

| > the user manual describes the function IFNULL on page 38, but when I
| > try to use it I get the following error:
| >
| >   users=> select ifnull (NULL, 'nix');
| >   ERROR:  No such function 'ifnull' with the specified attributes
|
| The manual seems to be obsolete. The related functions are named
| nullvalue and nonnullvalue, but neither takes more than one argument.

IFNULL isn't syntactic suguar.  It is like C's "1 ? 1 : 0".

| > Or does anybody know a simple way to concatenate strings, which can be
| > NULL?
|
| Don't know the answer to this, but it appears to be wrong not to
| ignore NULLs in concatenation.

That is the way Postgresql works:

users=> select 'tach' || NULL;
ERROR:  parser: parse error at or near ";"

users=> create function cat (text,text) returns text as 'begin return $1 || $2; end;' language 'plpgsql';
CREATE
users=> select cat ('tach', NULL);
ERROR:  typeidTypeRelid: Invalid type - oid = 0

| Why not trust this job to your client-side
| code?

Because I do not write that code and because my computer isn't
religious enough to trust anybody ;-)

Sascha

pgsql-general by date:

Previous
From: Peter Eisentraut
Date:
Subject: Re: [GENERAL] viewing dbs
Next
From: Franck Martin
Date:
Subject: ODBC Drivers for Win