title: SQL Server Exists predicate
body: <p>I understand that this</p>
  
  <pre><code>IF EXISTS(SELECT NULL) PRINT 'TRUE';
  </code></pre>
  
  <p>would always print <code>TRUE</code> because after all <code>NULL</code> is a value in SQL Server but why would this</p>
  
  <pre><code>IF EXISTS(SELECT NULL) PRINT 'TRUE'
  </code></pre>
  
  <p>print <code>TRUE</code> as the sub query would cause an error and <code>EXISTS</code> always checks for existence so how come this is possible.</p>