> i've read the 'null handling' section and still not found the answer to this > question: > > why should > > 'select * from tbl where field=null' > > be any different from > > 'select * from tbl where field isnull'
The short answer is "because it's different". A longer answer would reference the SQL-92 standard, talking about how any comparison involving null will resolve to false, including "null = null". Null is defined to be not equal to anything, including null. You *must* use "is null" to check for null, that's the way the SQL language is implemented, and it's the way that all SQL-92 compliant implementations are supposed to behave.