oracle 9i, compilation sous unix, teste sous pl/sql developper

bonjour,
:o
mon problème du jour est comme suite, dans une table j'ai un champ (flag) qui peut etre null,

ma requete qui fait SELECT

SELECT pays, tel
FROM ma_table m
WHERE m.flg <> 'N';

par exemple (elle est plus complique que ), je ne recoit rien dans mon select parceque le flag n'est pas renseigne, or se que je ne comprend pas c'est pourquoi quand je fais le teste "=" au lieu de "<>" cela marche, cela ne renvoit rien non plus (je ne saos pas si je suis clair ou pas)

la solution je l'ai trouve j'ai fait cela
NVL(m.flg,'' '') <> ''N''

et ca marche, mais moi j eveut comprendre pourquoi oracle ou sql je ne sais même pas d'ailleur qui gere cela, pourquoi il ne renvoit rien dans les deux cas.

merci,