SQL NULLs are not weird once you consider how you want relational logic to work when they is a record with non-existent values.
Could you explain how this makes sense then?
SELECT ...
WHERE NULL
If NULL is just "unknown" then shouldn't this be a type error?Moreover, could you explain why the heck this ought to be empty?
WITH T AS (SELECT 1 AS C1,
NULL AS C2)
SELECT C1, C2
FROM T
INNER JOIN T
USING (C1, C2);
As a human this looks insane to me, "relational algebra" be damned. You find a row, then you look it up again, and it's not there? What the hell?