title: Standard SQL boolean operator IS vs. equals (=) operator
body: <p>On the Wikipedia page for SQL there are some truth tables about boolean logic in SQL. [1] The Wikipedia page seems to source the SQL:2003 standard.</p>
  
  <p>The truth table for the equals operator (=) is different from the IS operator from the SQL:2003 draft.</p>
  
  <p>Also, the Wikipedia article notes that "IS NULL" (&lt;null predicate>) is a special case.</p>
  
  <p>In the SQL:2003 it seems that there is an "IS" opeartor which is a regular operator like AND, NOT and OR. However, the &lt;null predicate> is still there. </p>
  
  <p>Why is the &lt;null predicate> there when the IS is a regular boolean operator? Is it to make sure you can use the "IS NULL" construct with non-boolean values without type coersion? Is it discouraged to use "=NULL"?</p>
  
  <p>Does the SQL:2011 standard work differently?</p>
  
  <p>[1]: <a href="http://en.wikipedia.org/wiki/SQL#Null_and_three-valued_logic_.283VL.29">Wikipedia on SQL</a></p>
  
  <p>[2]: <a href="http://jtc1sc32.org/doc/N1951-2000/32N1964T-text_for_ballot-FCD_9075-2.pdf">SQL:2011 draft</a> PDF page 335</p>
  
  <p>[3]: <a href="http://synthesis.ipi.ac.ru/synthesis/student/oodb/essayRef/sqlFoundation">SQL:2003 draft</a>  PDF page 397</p>