I always only use where as a dataset option, i.e.Data two;
Set one (where=(...));
There is an article online saying 'where' controls input buffer and 'if' controls output buffer. I guess in this example because the where statement is used on a calculated field, it would not really do any subsetting of imput observations.