title: SQL do inner join if condition met
body: <p>i want a good way to improve my sql code, i have to use inner join when condition is met. I am currently replicates the code:</p>
  
  <pre><code>@SystemMerge bit
  
  if (@SystemMerge=1)  
  BEGIN
     SELECT
           .......
        FROM myTable
        INNER JOIN table ON table.param1=myTable.param1
        INNER JOIN systemTable on systemTable.param2=myTable.param2
     END
  ELSE
     BEGIN
        SELECT
           .......
        FROM myTable
        INNER JOIN table ON table.param1=myTable.param1
     END
  </code></pre>
  
  <p>and i would like to do it in a way like this:</p>
  
  <pre><code>@SystemMerge bit
  BEGIN
     SELECT
        .......
     FROM myTable
     INNER JOIN table ON table.param1=myTable.param1
     ***//the next 4 lines is not working, but this pseudo of what i want:***
     if (@SystemMerge=1)  
     begin
        INNER JOIN systemTable on systemTable.param2=myTable.param2
     end
  </code></pre>
  
  <p><strong>edit:</strong>
  the solution (thanks to @Damien_The_Unbeliever):</p>
  
  <pre><code>LEFT JOIN systemTable ON systemTable.param2=myTable.param2
  WHERE 
     ((@SystemMerge=1 AND systemTable.param2 is not null) 
     OR
     (@SystemMerge=0 OR @SystemMerge is null))
  </code></pre>