Re: Need efficient way to do comparison with NULL as an option

From: "D(dot) Dante Lorenso" <dante(at)lorenso(dot)com>
To: pgsql-general(at)postgresql(dot)org
Subject: Re: Need efficient way to do comparison with NULL as an option
Date: 2008-01-05 04:15:47
Message-ID: 477F0473.6040309@lorenso.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

D. Dante Lorenso wrote:
> I'm looking for an operator that will compare NULL with NULL and
> evaluate as TRUE.
> I have a BIGINT column which might contain NULL values. I want to pass
> a value to compare with that column in my WHERE clause. If the value
> I'm comparing is 0, I want it to match the NULL values. Here is a
> sample query that I currently use:
> SELECT *
> FROM mytable
> WHERE (col IS NULL AND NULLIF(?, 0) IS NULL) OR col = ?;
> The '?' placeholders used in the query will receive the same value which
> might be any one of the following: NULL, 0, 1, 2, 3, etc.
> What I'd really like is an operator that will compare NULL with NULL and
> evaluate as TRUE. Does that exist?

Is this the answer?

SELECT *
FROM mytable
WHERE col IS NOT DISTINCT FROM NULLIF(?, 0);

-- Dante

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Tom Lane 2008-01-05 04:19:41 Re: Need efficient way to do comparison with NULL as an option
Previous Message Greg Smith 2008-01-05 04:09:31 Re: Performance problem. Could it be related to 8.3-beta4?