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

Applies To
SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Express SQL Server 2012 Standard SQL Server 2012 Web SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use)

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 /en-us/help/2931693

Cumulative Update 7 for SQL Server 2012 SP1 /en-us/help/2894115

About cumulative updates for SQL Server

Each new cumulative update for SQL Server contains all the hotfixes and all the security fixes that were included with the previous cumulative update. Check out the latest cumulative updates for SQL Server:

      

Status

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