where句で、
とした場合に、field1もfield2も値がnullであれば等しくないと見なされます。
こういった場合に等しいように判定させたい場合は
nvl(field1,-1) = nvl(field2,-1)
というように書くとnull = nullの場合に等しいと判定されるようになりますし、nullでない場合も正しく判定されます。
上記例ではnvl関数を使用してnullであれば-1としていますが、-1はfield1にもfield2にも入ることのない値にしないといけません。
なぜならfield1の値がnullで、field2の値が-1だった場合、等しいと判定されてしまうからです。
ですので、null = nullを等しくさせるために、nvlで指定する代替値はfield1にもfield2にも入ることのない値を指定します。