Andrew Sullivan wrote:
On Mon, Jun 04, 2007 at 12:37:42AM +0200, PFC wrote:
NULL usually means "unknown" or "not applicable"

Aaaargh! No, it doesn't. It means NULL. Nothing else. If it meant unknown or not applicable or anything else, then
        SELECT * FROM nulltbl a, othernulltbl b
                WHERE a.nullcol = b.nullcol

would return rows where a.nullcol contained NULL and b.nullcol
contained NULL. But it doesn't, because !(NULL = NULL).

Well, a strict "unknown" is fine - so long as it means just that.
  How tall is Andrew? Unknown
  How tall is Richard? Unknown
  Are Andrew and Richard the same height? Unknown

The problem is the slippery-slope from "unknown" to "not applicable" to "user refused to answer" to ...whatever


Part of it is the poor support for out-of-band values. In many cases what people want is the ability to have a value of type 'number in range 1-20 or text "n/a"' and there's not a simple way to provide that, so they use null.

--
  Richard Huxton
  Archonet Ltd

---------------------------(end of broadcast)---------------------------
TIP 3: Have you checked our extensive FAQ?

              http://www.postgresql.org/docs/faq

Reply via email to