Re: Problem using NULLIF in a CASE expression

From: "Roger Hand" <RHand(at)kailea(dot)com>
To: "Bruno BAGUETTE" <levure(at)baguette(dot)net>, <pgsql-general(at)postgresql(dot)org>
Subject: Re: Problem using NULLIF in a CASE expression
Date: 2005-09-09 12:14:56
Message-ID: DB28E9B548192448A4E8C8A3C1B1E475611CD9@sj1-exch-01.us.corp.kailea.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Try this:

SELECT CASE
WHEN btrim(' A string', ' ') = '' OR <field-name> IS NULL
THEN NULL
ELSE 6
END AS type_id;

-----Original Message-----
From: pgsql-general-owner(at)postgresql(dot)org
[mailto:pgsql-general-owner(at)postgresql(dot)org]On Behalf Of Bruno BAGUETTE
Sent: Friday, September 09, 2005 4:45 AM
To: pgsql-general(at)postgresql(dot)org
Subject: [GENERAL] Problem using NULLIF in a CASE expression

Hello,

I have a problem using NULLIF inside a CASE expression.

I explain the goal of my query : I have a table where there is two
fields : one varchar field and one INT8 field.
When the varchar field is empty I have to display the INT8 field.
If the varchar field is not empty I have to display a NULL value (even
if the INT8 field contains something).

BUT : that table is used by several applications and theses applications
does not always store NULL in the varchar field. Some applications store
an empty string '', or stores <space> char(s).
SO, I have to do a btrim and to get a NULL value when I just have ''
after the btrim.

I wrote another (and quite shorter!) SQL query to resume the problem :

SELECT CASE NULLIF(btrim(' A string', ' '), '')
WHEN NOT NULL
THEN NULL
ELSE 6
END AS type_id;

ERROR: operator does not exist: text = boolean
HINT: No operator matches the given name and argument type(s). You may
need to add explicit type casts.

Why this query does not accept the NULLIF ?
What can I do to solve that problem ?

Thanks in advance !

Bruno BAGUETTE.

---------------------------(end of broadcast)---------------------------
TIP 3: Have you checked our extensive FAQ?

http://www.postgresql.org/docs/faq

Browse pgsql-general by date

  From Date Subject
Next Message Richard Huxton 2005-09-09 12:25:30 Re: Is this a bug or am I doing something wrong?
Previous Message Csaba Nagy 2005-09-09 12:13:26 Re: Problem using NULLIF in a CASE expression