Перейти к основному контенту
Поддержка
Войдите с помощью учетной записи Майкрософт
Войдите или создайте учетную запись.
Здравствуйте,
Выберите другую учетную запись.
У вас несколько учетных записей
Выберите учетную запись, с помощью которой нужно войти.

Проблемы

Рассмотрим следующий сценарий.

  • У вас есть компьютер, на котором установлен Microsoft SQL Server 2012.

  • У вас есть запрос, содержащий оператор case в инструкции SELECT и оператор case в инструкции Group By .

  • Два оператора case оцениваются как null.

  • Вы запускаете запрос.

В этом случае появляется следующее сообщение об ошибке:

Сообщение 8120, уровень 16, состояние 1, строка 3Column "<имя столбца>" недопустимо в списке SELECT, так как он не содержится ни в агрегатной функции, ни в предложении 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 В запросе оператор "When 1 = 2, T1. Столбец1 else 10" возвращает значение 10. Эта проблема возникает при замене "10" с помощью значения NULL.Примечание.Эта проблема не возникает при удалении одного из операторов case из оператора SELECT или оператора Group By .

Все новые накопительные обновления для SQL Server содержат все исправления и все исправления для системы безопасности, которые были включены в предыдущий накопительный пакет обновления. Ознакомьтесь с самыми последними накопительными обновлениями для SQL Server.

Статус

Корпорация Майкрософт подтверждает наличие этой проблемы в своих продуктах, которые перечислены в разделе "Применяется к".

Нужна дополнительная помощь?

Нужны дополнительные параметры?

Изучите преимущества подписки, просмотрите учебные курсы, узнайте, как защитить свое устройство и т. д.

В сообществах можно задавать вопросы и отвечать на них, отправлять отзывы и консультироваться с экспертами разных профилей.

Были ли сведения полезными?

Насколько вы удовлетворены качеством перевода?
Что повлияло на вашу оценку?
После нажатия кнопки "Отправить" ваш отзыв будет использован для улучшения продуктов и служб Майкрософт. Эти данные будут доступны для сбора ИТ-администратору. Заявление о конфиденциальности.

Спасибо за ваш отзыв!

×