Simptomi
Razmotrite sljedeći scenarij:
- Na računalu je instaliran Microsoft SQL Server 2012.
- Imate upit koji sadrži naredbu CASE u naredbi SELECT i naredbu CASE u naredbi GROUP BY.
- Dvije naredbe CASE vrednuju se kao NULL.
- Izvršite upit.
U tom se scenariju pojavljuje sljedeća poruka o pogrešci:
Napomena
Poruka 8120, Razina 16, Država 1, Redak 3
Stupac "<naziv >stupca" nije valjan na popisu za odabir jer nije sadržan ni u agregatnoj funkciji ni u uvjetu GROUP BY.
Na primjer, izvršite sljedeći upit:test stvaranja baze podataka
Idite na
Korištenje testa
Idite na
Create table tvt ( v1t binary(1) null)
CREATE TABLE TLN (ln numeric(5) not null)
Idite na
odabir
slučaj
kada je 1=2 onda t1.col1
inače 10
kraj,
slučaj
Kada je t1.col1 = 2, tada je t1.col2
kraj
from (
Odaberite T2.V1t kao stupac1, 10 kao stupac2
Od tvt T2
) T1
Grupiraj prema
slučaj
kada je 1=2 onda t1.col1
inače 10
kraj,
slučaj
Kada je t1.col1 = 2, tada je t1.col2
kraj
go U upitu se iskaz "kada je 1=2 onda t1.col1 inače 10" vrednuje kao 10. Kada zamijenite "10" s vrijednosti NULL, dolazi do tog problema.
Napomena Taj se problem ne pojavljuje kada uklonite naredbu CASE iz naredbe SELECT ili iz naredbe GROUP BY.
Rješenje
Kada primijenite popravak, morate omogućiti zastavicu praćenja da bi hitni popravak funkcionirao. Kada morate primijeniti taj popravak, obratite se Microsoftovoj podršci.
Problem je prvi put riješen u sljedećem kumulativnom ažuriranju sustava SQL Server.
Kumulativno ažuriranje 6 za SQL Server 2012 SP1 /en-us/help/2874879
O kumulativnim ažuriranjima za SQL Server
Svako novo kumulativno ažuriranje za SQL Server sadrži sve hitne popravke i sigurnosne popravke koji su obuhvaćeni prethodnim kumulativnim ažuriranjem. Pogledajte najnovija kumulativna ažuriranja za SQL Server:
Status
Microsoft je potvrdio da je to problem u Microsoftovim proizvodima koji su navedeni u odjeljku „Odnosi se na“.