Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.misc -> Re: Easy SQL problem

Re: Easy SQL problem

From: Richard Foote <Richard.Foote_at_oracle.com>
Date: Fri, 09 Aug 2002 12:24:45 +1000
Message-ID: <3D5327ED.AC92D4DF@oracle.com>


Hi Ben,

The nice thing about an easy SQL problem is that generally it's an easy SQL solution.

What you are highlighting is not a 9i feature but a characteristic of how Oracle deals with nulls since time began.

Logically, the best way to view a null is as an unknown. Therefore if you ask if one unknown value is equal to (or not equal to) another unknown value the answer of course is you don't know.

Therefore a condition variable = null can never be treated as true and will never return a row.

Neither will variable <> null.

Therefore, if you want to know if a column is (or is not) null you must use the 'is null' (or 'is not null') notation.

Cheers

Richard
Ben wrote:
>
> Any one know if this is a new 9i feature or not?
>
> I have the following table.
>
> SQL> desc table1
> Name Null? Type
> ----------------------------------------------------- --------
> -----------
> ID
> VARCHAR2(5)
> NAME
> VARCHAR2(5)
>
> SQL> insert into table1 values ('242','');
>
> 1 row created.
>
> SQL> select * from table1;
>
> ID NAME
> ----- ------------------------------
> 1 A
> 2 A
> 3 C
> 4 D
> 5. E
> aaa C
> 242
>
> 7 rows selected.
>
> SQL> select * from table1 where name is null;
>
> ID NAME
> ----- ------------------------------
> 242
>
> SQL> select * from table1 where name is not null;
>
> ID NAME
> ----- ------------------------------
> 1 A
> 2 A
> 3 C
> 4 D
> 5. E
> aaa C
>
> 6 rows selected.
>
> SQL> select * from table1 where name <> '';
>
> no rows selected
>
> SQL> select * from table1 where name = '';
>
> no rows selected
>
> My question is why do I get no rows selected for "select * from table1
> where name <> '';" and "select * from table1 where name = '';"?
>
> Any idea?
>
> Thanks!!
> Ben


Received on Thu Aug 08 2002 - 21:24:45 CDT

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US