使用 Microsoft 登录
登录或创建帐户。
你好,
使用其他帐户。
你有多个帐户
选择要登录的帐户。

症状

请考虑以下情况:

  • 您的计算机安装了 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 产品问题。

需要更多帮助?

需要更多选项?

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

社区可帮助你提出和回答问题、提供反馈,并听取经验丰富专家的意见。

此信息是否有帮助?

你对语言质量的满意程度如何?
哪些因素影响了你的体验?
按“提交”即表示你的反馈将用于改进 Microsoft 产品和服务。 你的 IT 管理员将能够收集此数据。 隐私声明。

谢谢您的反馈!

×