title: Does a SQL join only execute the minimum number of conditions?
body: <p>In C# if I run the following.</p>
  
  <pre><code>if(obj.a() &amp;&amp; obj.b()){
      // do something
  }
  </code></pre>
  
  <p>Function <code>b</code> will only execute if <code>a</code> returns true. Does the same thing happen below?</p>
  
  <pre><code>select
      *
  from
      tablea a
      inner join tableb b
          isnumeric(b.col1) = 1
          and cast(b.col1 as int) = a.id
  </code></pre>
  
  <p>Will the <code>cast</code> only be executed when <code>b.col1</code> is a numeric?</p>