Applies ToSQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Standard SQL Server 2012 Web

Sintomas

Considere o seguinte cenário:

  • Você tem um computador com o Microsoft SQL Server 2012 instalado.

  • Você tem uma consulta que contém uma instrução Case em uma instrução Select e uma instrução Case em uma instrução Group by .

  • As instruções de dois casos são avaliadas como NULL.

  • Você executa a consulta.

Nesse cenário, a seguinte mensagem de erro é exibida:

MSG 8120, nível 16, estado 1, linha 3Column <'> nome da coluna ' é inválido na lista de seleção porque não está contido em uma função de agregação ou na cláusula Group by.

Por exemplo, você executa a seguinte consulta: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 Na consulta, a instrução "quando 1 = 2, a T1. Col1 mais 10" é avaliada como 10. Quando você substitui "10" usando NULL, esse problema ocorre.ObservaçãoEsse problema não ocorre quando você remove uma das instruções Case da instrução Select ou da instrução Group by .

Cada nova atualização cumulativa do SQL Server contém todos os hotfixes e todas as correções de segurança incluídas na atualização cumulativa anterior. Confira as atualizações cumulativas mais recentes do SQL Server:

Status

A Microsoft confirmou que este é um problema nos produtos Microsoft listados na seção "Aplicável a".

Precisa de mais ajuda?

Quer mais opções

Explore os benefícios da assinatura, procure cursos de treinamento, saiba como proteger seu dispositivo e muito mais.

As comunidades ajudam você a fazer e responder perguntas, fazer comentários e ouvir especialistas com conhecimento avançado.