Symptomen
Neem het volgende scenario:
-
U hebt een computer waarop Microsoft SQL Server 2012 is geïnstalleerd.
-
U hebt een query die een aanvraag voor de Case bevat in een Select -instructie en een Case -instructie in de instructie Group by .
-
De twee Case -afschriften resulteren in null.
-
Voer de query uit.
In dit scenario wordt het volgende foutbericht weergegeven:
Msg 8120, niveau 16, provincie 1, line 3Column ' <kolomnaam> ' is ongeldig in de SELECT-lijst omdat deze niet voorkomt in een statistische functie of de Group By-Component.
Voer bijvoorbeeld de volgende query uit:create database testgouse testgocreate table tvt ( v1t binary(1) null)create table tln (ln numeric(5) not null)goselectcase when 1=2 then t1.col1else 10end,casewhen t1.col1 = 2 then t1.col2endfrom (select t2.v1t as col1, 10 as col2 from tvt t2) t1group by case when 1=2 then t1.col1else 10end,casewhen t1.col1 = 2 then t1.col2endgo In de query is de instructie ' als 1 = 2 en vervolgens T1. Kol1 else 10 ' oplevert voor 10. Dit probleem doet zich voor wanneer u "10" vervangt via NULL.Opmerking Dit probleem doet zich niet voor wanneer u een van de Case -instructies verwijdert van de Select -instructie of van de Group by -instructie.
Oplossing
Wanneer u de oplossing hebt toegepast, moet u een traceringsvlag inschakelen om de hotfix te kunnen gebruiken. Neem contact op met Microsoft ondersteuning wanneer u deze correctie moet toepassen.
Het probleem is voor het eerst opgelost in de volgende cumulatieve update van SQL Server.
Cumulatieve update 6 voor SQL Server 2012 SP1 /en-us/help/2874879
Elke nieuwe cumulatieve update voor SQL Server bevat alle hotfixes en alle beveiligingsoplossingen die zijn opgenomen in de vorige cumulatieve update. Bekijk de nieuwste cumulatieve updates voor SQL Server:
Status
Microsoft heeft bevestigd dat dit probleem zich kan voordoen in de Microsoft-producten die worden vermeld in de sectie Van toepassing op.