Quote Originariamente inviata da alemix Visualizza il messaggio
Però cosa che non ho capito è che a volte i campi non vengono riconosciuti come nulli anche se non hanno niente, e quindi bisogna fare

WHERE campo=''

Come posso gestire al meglio tutto?

va bene fare WHERE campo='' OR campo IS NULL?
Un campo definito NULL e mai valorizzato e' NULL e lo trovi con IS NULL
Un campo valorizzato e poi rimosso oppure valorizzato con "" empty (vuoto), Non e' piu' NULL ma EMPTY e lo trovi con campo = ''

Se un campo definito NULL e proprio tale, non risponde alle aggregazioni (count, avg ecc.)
Un campo NULL ma diventato EMPTY invece risponde alle aggregazioni

Se vuoi ricondurre a NULL un campo diventato EMPTY devi espressamente aggiornarlo:
update tab set campo = NULL perche' da solo non tornera' mai NULL

Riassumendo i campi possono avere tre diverse condizioni, NULL, EMPTY o valorizzati
Nel tuo caso va bene come hai deciso di fare, sempre che la condizione di NULL/EMPTY non debba essere diversificata.