メイン コンテンツへスキップ
サポート
Microsoft アカウントでサインイン
サインインまたはアカウントを作成してください。
こんにちは、
別のアカウントを選択してください。
複数のアカウントがあります
サインインに使用するアカウントを選択してください。

現象

次のような状況で問題が発生します。

  • Microsoft SQL Server 2012 がインストールされているコンピューターを使用しています。

  • Selectステートメント内のCaseステートメントとGROUP BYステートメントのcaseステートメントを含むクエリがあります。

  • 2つの CASE ステートメントは NULL として評価されます。

  • クエリを実行します。

このとき、次のエラー メッセージが表示されます。

メッセージ8120、レベル16、状態1、行3列 ' <列名> ' は、集計関数または 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 このクエリでは、ステートメント "if 1 = 2 then t1" というステートメントが10に評価されます。 NULL を使用して "10" を置換すると、この問題が発生します。注:この問題は、 SELECTステートメントまたはGROUP BYステートメントからいずれかのCASEステートメントを削除した場合には発生しません。

SQL Server 用の新しい累積更新プログラムには、以前の累積的な更新プログラムに含まれていたすべての修正プログラムとすべてのセキュリティ修正が含まれています。 SQL Server の最新の累積的な更新プログラムを確認します。

状態

マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。

ヘルプを表示

その他のオプションが必要ですか?

サブスクリプションの特典の参照、トレーニング コースの閲覧、デバイスのセキュリティ保護方法などについて説明します。

コミュニティは、質問をしたり質問の答えを得たり、フィードバックを提供したり、豊富な知識を持つ専門家の意見を聞いたりするのに役立ちます。

この情報は役に立ちましたか?

言語の品質にどの程度満足していますか?
どのような要因がお客様の操作性に影響しましたか?
[送信] を押すと、Microsoft の製品とサービスの改善にフィードバックが使用されます。 IT 管理者はこのデータを収集できます。 プライバシーに関する声明。

フィードバックをいただき、ありがとうございます。

×