Re: So what's null then if it's not nothing?

From: Jon Heggland <heggland_at_idi.ntnu.no>
Date: Fri, 9 Dec 2005 12:33:03 +0100
Message-ID: <MPG.1e0389d9a5ac00cd989739_at_news.ntnu.no>


In article <1134059425.424236.119570_at_g14g2000cwa.googlegroups.com>, boston103_at_hotmail.com says...
>
> > > That's how the SQL handles NULL (whatever NULL is assumed to mean).
> >
> > I am not convinced of that. Have you found the relevant passages in the
> > standard?
> >
>
> In brief, the standard has this to say: there is an element/marker
> (NULL) that extends each domain, and the rules for using the element in
> those domains are such and such. The standard deals with the 3VL logic
> by defining the truth tables for AND/OR/NOT and providing an additional
> truth vale (UNKNOWN).

And what is the relationship between NULL and UNKNOWN? And what is the truth value of the expression UNKNOWN = UNKNOWN when used in a WHERE clause?

> That is not correct either. Mathematically speaking, integers form a
> commutative ring and rationals are a field. Besides, you cannot say
> that the rational 3 and the integer 3 are the same thing, because the
> former is an equivalence class [canonical] representative over
> integers which is surely not the same thing as the integer.

Well, I thought you were talking about computer science and programming languages when you said we used '3' for more than one thing. I am not a mathematician, so I cannot really argue at this level. In my favourite programming languages though, '3' is just one thing: an int. And in some subtype/subdomain theories, it is a subtype of rational.

> My point is, as it was before, that you can use the same label to
> denote different things as long as you are careful with what you are
> trying to say.

I don't dispute that; I only say that you should have a good reason for doing so. In the case of numbers, you have. In the case of NULLs, you don't, IMO.

-- 
Jon
Received on Fri Dec 09 2005 - 12:33:03 CET

Original text of this message