| 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: | Whole Thread | Raw Message | 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
| 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? |