Gäller för
SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Standard SQL Server 2012 Web

Symptom

Tänk dig följande situation:

  • Du har en dator med Microsoft SQL Server 2012 installerat.

  • Du har en fråga som innehåller en Case -programsats i ett Select -uttryck och en Case -sats i en Group by -sats.

  • De två Case -instruktionerna utvärderas till null.

  • Du kör frågan.

I det här scenariot visas följande fel meddelande:

Meddelande 8120, nivå 16, tillstånd 1, rad 3Column "<kolumn namn> ' är ogiltigt i SELECT-listan eftersom den inte finns i en mängd funktion eller Group by-satsen.

Du kör exempelvis följande fråga: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 I frågan returnerar uttrycket "när 1 = 2 sedan T1. col1 Else 10". När du ersätter "10" genom att använda NULL uppstår det här problemet.Obs! Det här problemet uppstår inte när du tar bort en Case -programsats från Select -satsen eller från Group by -satsen.

Varje ny kumulativ uppdatering för SQL Server innehåller alla snabb korrigeringar och alla säkerhets korrigeringar som ingick i den föregående kumulativa uppdateringen. Kolla in de senaste kumulativa uppdateringarna för SQL Server:

Status

Microsoft har bekräftat att det här är ett problem i Microsoft-produkterna som nämns i "gäller".

Behöver du mer hjälp?

Vill du ha fler alternativ?

Utforska prenumerationsförmåner, bläddra bland utbildningskurser, lär dig hur du skyddar din enhet med mera.