应用对象
SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Standard SQL Server 2012 Web

症状

请考虑以下情况:

  • 您的计算机安装了 Microsoft SQL Server 2012。

  • 您有一个查询,其中包含SELECT语句中的Case语句和GROUP BY语句中的case语句。

  • 两个 CASE 语句的计算结果为 NULL。

  • 您运行查询。

在这种情况下,您会收到以下错误消息:

Msg 8120、Level 16、State 1、Line 3Column "<> 列名 在 select 列表中无效,因为它不包含在 aggregate 函数或 group by 子句中。

例如,运行以下查询: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 在查询中,语句 "第 1 = 2 后 t1. col1 else 10" 的计算结果为10。 使用 NULL 替换 "10" 时,会出现此问题。注意当从SELECT语句或GROUP BY语句中删除两个CASE语句时,不会出现此问题。

SQL Server 的每个新的累积更新均包含以前的累积更新中包含的所有修补程序和所有安全修补程序。 查看 SQL Server 的最新累积更新:

状态

Microsoft 已经确认这是一个列于“适用范围”部分的 Microsoft 产品问题。

需要更多帮助?

需要更多选项?

了解订阅权益、浏览培训课程、了解如何保护设备等。