Sümptomid
Arvestage järgmise stsenaariumiga.
-
Teil on arvuti, kuhu on installitud Microsoft SQL Server 2012.
-
Teil on päring, mis sisaldab Teenindusjuhtumi lauset Select -lauses ja Teenindusjuhtumi lauset rühmas lause alusel .
-
Kahe Teenindusjuhtumi lause väärtuseks on null.
-
Päringu käivitamine
Selle stsenaariumi korral kuvatakse järgmine tõrketeade:
MSG 8120, tase 16, olek 1, rea 3Column "<veeru nimi>" ei sobi loendis Vali, kuna see ei sisaldu kas KOKKUVÕTTEFUNKTSIOONI või rühma klausli alusel.
Näiteks käivitage järgmine päring.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 Päringus on lause "kui 1 = 2, siis T1. Col1 Else 10" väärtuseks 10. Kui asendate teksti "10", kasutades väärtust NULL, ilmneb see probleem.Märkus.See probleem ilmneb siis, kui eemaldate ühe Teenindusjuhtumi lausetest Select -lausest või rühmast lause alusel .
Lahendus
Pärast paranduse rakendamist peate lubama, et kiirparandus töötaks. Kui peate selle paranduse rakendama, võtke ühendust Microsofti toega.
Probleem parandati esmakordselt SQL serveri järgmises koondvärskenduses.
Kumulatiivne Update 6 SQL Server 2012 SP1 jaoks /en-us/help/2874879
Iga uus koondvärskenduses SQL Server sisaldab kõiki käigultparandused ja kõik turvaparandusi, mis kuulusid eelmise koondvärskenduse. Vaadake SQL serveri kumulatiivseid värskendusi.
Olek
Microsoft on kinnitanud, et see probleem esineb jaotises "kehtib järgmiste toodete kohta" loetletud Microsofti toodetes.