Se aplică la
SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Standard SQL Server 2012 Web

Simptome

Luați în considerare următorul scenariu:

  • Aveți un computer care are instalat Microsoft SQL Server 2012.

  • Aveți o interogare care conține o instrucțiune de caz într-o instrucțiune Select și o instrucțiune de caz dintr-o instrucțiune Group by .

  • Cele două declarații de caz se evaluează la Null.

  • Ați rulat interogarea.

În acest scenariu, veți primi următorul mesaj de eroare:

MSG 8120, nivel 16, stat 1, 3Column linie ' <> nume coloană ' este nevalid în lista Selectare, deoarece nu este conținută în nicio funcție agregată sau în clauza Group by.

De exemplu, veți executa următoarea interogare: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 În interogare, instrucțiunea "când 1 = 2 apoi T1. col1 else 10" se evaluează la 10. Atunci când înlocuiți "10" utilizând NULL, apare această problemă.Notă Această problemă nu se produce atunci când eliminați oricare dintre declarațiile de caz din instrucțiunea Select sau din instrucțiunea Group by .

Fiecare nouă actualizare cumulativă pentru SQL Server conține toate remedierile rapide și toate remedierile de securitate care au fost incluse în actualizarea cumulativă anterioară. Consultați cele mai recente actualizări cumulative pentru SQL Server:

Stare

Microsoft a confirmat că aceasta este o problemă în produsele Microsoft enumerate în secțiunea „Se aplică la”.

Aveți nevoie de ajutor suplimentar?

Doriți mai multe opțiuni?

Explorați avantajele abonamentului, navigați prin cursurile de instruire, aflați cum să vă securizați dispozitivul și multe altele.