Sintomi
Si consideri lo scenario seguente:
- In un computer è installato Microsoft SQL Server 2012.
- Si dispone di una query che contiene un'istruzione CASE in un'istruzione SELECT e un'istruzione CASE in un'istruzione GROUP BY.
- Le due istruzioni CASE restituiscono NULL.
- Si esegue la query.
In questo caso, viene visualizzato il seguente messaggio di errore:
Nota
Messaggio 8120, livello 16, stato 1, riga 3
La colonna 'column name><' non è valida nell'elenco di selezione perché non è contenuta in una funzione di aggregazione o nella clausola GROUP BY.
Ad esempio, si esegue il seguente query:create database test
andare
Test d'uso
andare
create table tvt ( v1t binary(1) null)
Create table TLN (ln numeric(5) not null)
andare
selezionare
Cassa
quando 1=2 allora t1.col1
altrimenti 10
fine,
Cassa
Quando T1.Col1 = 2 poi T1.COL2
fine
da (
Seleziona T2.V1T come Col1, 10 come Col2
Da TVT T2
) t1
raggruppa per
Cassa
quando 1=2 allora t1.col1
altrimenti 10
fine,
Cassa
Quando T1.Col1 = 2 poi T1.COL2
fine
Go Nella query, l'istruzione "when 1=2 then t1.col1 else 10" restituisce 10. Quando si sostituisce "10" usando NULL, si verifica questo problema.
Nota: questo problema non si verifica quando si rimuove una delle istruzioni CASE dall'istruzione SELECT o dall'istruzione GROUP BY.
Risoluzione
Dopo aver applicato la correzione, è necessario abilitare un flag di traccia per far funzionare l'hotfix. Contattare il supporto tecnico Microsoft quando è necessario applicare questa correzione.
Il problema è stato risolto per la prima volta nell'aggiornamento cumulativo seguente di SQL Server.
Aggiornamento cumulativo 6 per SQL Server 2012 SP1 /it-IT/help/2874879
Informazioni sugli aggiornamenti cumulativi per SQL Server
Ogni nuovo aggiornamento cumulativo per SQL Server contiene tutte le correzioni rapide e di sicurezza incluse nell'aggiornamento cumulativo precedente. Vedere gli aggiornamenti cumulativi più recenti per SQL Server:
Stato
Microsoft ha confermato che si tratta di un problema relativo ai prodotti elencati nella sezione "Si applica a".