FIX: Suboptimal execution plan is generated when you run a query in SQL Server 2012 or SQL Server 2014

Applies to: SQL Server 2012 DeveloperSQL Server 2012 EnterpriseSQL Server 2012 Express More

Symptoms


When you run a query in Microsoft SQL Server 2012 or SQL Server 2014, and the following conditions are true, a suboptimal execution plan is generated in SQL Server 2012:
  • The query contains a Case, When, Then, and Else statement.
  • The When statement has a constant condition that evaluates to "false".
  • The Then statement contains a Select clause.

Notes
  • In the execution plan, the Then statement is evaluated and compared to isFalseOrNull(0). However, the When statement always evaluates to "false".
  • This issue does not occur in Microsoft SQL Server 2008 R2

Resolution


The issue was first fixed in the following cumulative update of SQL Server.

Cumulative Update 1 for SQL Server 2014

Cumulative Update 7 for SQL Server 2012 SP1

Status


Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.