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
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.