Váš jediný problém je, že místo AND používáte NEBO.
Podívejme se na případ, kdy je hodnota NULL:
CON.EMAILADDRESS IS NOT NULL
=> NEPRAVDACON.EMAILADDRESS != ' '
=> NULL
FALSE OR NULL => NULL. Protože výsledkem kritérií není hodnota TRUE, nevybíráte hodnoty NULL.
A pokud je hodnota prázdný řetězec '', ' ' nebo jakákoli délka:
CON.EMAILADDRESS IS NOT NULL
=> PRAVDACON.EMAILADDRESS != ' '
=> NEPRAVDA
PRAVDA NEBO NEPRAVDA => PRAVDA. Vyberete prázdný řetězec.
Předpokládám, že to je to, co vás zmátlo:přestože jste omylem použili OR místo AND, stále jste odstranili některé prázdné řetězce, ale ne všechny.
Takže:
WHERE CON.EMAILADDRESS IS NOT NULL AND CON.EMAILADDRESS != ' ';
Nebo jako jakýkoli řetězec != ''
nemůže být NULL (NULL != ''
=> NULL, nikoli TRUE), jednoduše:
WHERE CON.EMAILADDRESS != '';