• At the risk of reinvigorating fanatical discussions (search for the threads associated with any NULL-related article on the site), it's not Microsoft's design flaw as NULLs are a basic part of the SQL standard that all RDMS' (good ones anyway - don't flame me.. you're on the wrong website) support.

    NULLs have their place. At least someone in this discussion has already pointed out the difference between NULLs in tables vs NULLs in query results. The former need can be debated - sometimes people avoid them like the plague in tables.

    But in query results they are absolutely necessary and people should understand how they work. Outer joins are a classic and obvious case.

    What also confuses people is how aggregate functions such as SUM, AVG, etc treat NULLs. Essentially the NULLs are ignored for the purposes of such functions. If you're calculating the average of 1, 2, 3 and NULL then you want the average to be (1 + 2 + 3) / 3 = 2 rather than (1 + 2 + 3 + 0) / 4 = 1.5.... NULL <> 0.

    For cases, such as the one given in the quiz, think of NULL as mathematical infinity. Anything *, -, /, + infinity is infinity. Also, infinity <> infinity, etc. The rules are well defined and, from a logical & mathematical point of view, make sense.

    Anyhow, I must admit that if I had employees (that'd be the day!) I wouldn't hire someone who had not tried to understand NULLs and how they're handled, nor would I hire someone who just carte blanch ruled them out as a matter of dogma, etc. But that's just me and I'm picky 😀