On Wed, Jul 14, 2010 at 1:25 PM, Simon Slavin <slav...@bigfraud.org> wrote:

> By the way, can someone explain why this rule, equivalent to line 4 of the
> table, is there:
>
> else    if the right op contains NULL, then     IN = NULL
>
> By the time we've got there we already know that the left op is not NULL.
>  Why does the handling of a NULL right op require a special case like that ?
>  We definitely know that the left op is not IN it.
>

NULL should be interpreted as "unknown".  Hence in:

      5 IN (1,2,3,4,NULL,6,7)

we do *not* definitely know that 5 is not in the RHS.  5 may or may not be
in the RHS depending on what the value of the NULL is.  Since we don't know
if 5 is in the RHS, the result of the expression is also unknown, or in
SQL-speak: NULL.




>
> Simon.
> _______________________________________________
> sqlite-users mailing list
> sqlite-users@sqlite.org
> http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
>



-- 
---------------------
D. Richard Hipp
d...@sqlite.org
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to