Je enige probleem is dat je OR gebruikt in plaats van AND.
Laten we eens kijken naar het geval waarin de waarde NULL is:
CON.EMAILADDRESS IS NOT NULL
=> ONWAARCON.EMAILADDRESS != ' '
=> NULL
ONWAAR OF NULL => NULL. Aangezien de criteria niet resulteren in TRUE, selecteert u geen NULL's.
En als de waarde een lege string '', ' ', of welke lengte dan ook is:
CON.EMAILADDRESS IS NOT NULL
=> WAARCON.EMAILADDRESS != ' '
=> ONWAAR
WAAR OF ONWAAR => WAAR. U selecteert de lege string.
Ik veronderstel dat dit je in de war bracht:ondanks dat je per ongeluk OR hebt gebruikt in plaats van AND, heb je nog steeds enkele lege strings verwijderd, maar niet allemaal.
Dus:
WHERE CON.EMAILADDRESS IS NOT NULL AND CON.EMAILADDRESS != ' ';
Of, zoals elke string != ''
kan niet NULL zijn (NULL != ''
=> NULL, niet WAAR), gewoon:
WHERE CON.EMAILADDRESS != '';