KB2873474 - 修正:在 SQL Server 2012 中執行查詢時,發生錯誤「欄位『<欄名稱>』在選取清單中無效,因為它未包含在彙總函數或 GROUP BY 子句中」

套用到
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 3

資料行 '<column name>' 在選取清單中無效,因為它未包含在彙總函數或 GROUP BY 子句中。

例如,您可以執行下列查詢:建立資料庫測試
返
使用測試
返
建立資料表 tvt ( v1t 二進位 (1) null)
建立表 TLN (ln 數字 (5) NOT Null)
返
選取
案例
當 1=2 時 t1.col1
否則 10
end,
案例
當 T1.col1 = 2 時,則 T1.col2
end
從 (
選取 T2.v1t 做為 Col1,10 做為 Col2
來自 TVT T2
) T1
分組依據
案例
當 1=2 時 t1.col1
否則 10
end,
案例
當 T1.col1 = 2 時,則 T1.col2
end
前往 在查詢中,“when 1=2 then t1.col1 else 10” 語句評估為 10。 當您使用 NULL 取代 “10” 時,會發生這個問題。
附註:當您從 SELECT 陳述式或 GROUP BY 陳述式中移除任一 CASE 陳述式時,不會發生這個問題。

解決方式

套用修正程式之後,您必須啟用追蹤旗標,才能讓 Hotfix 正常運作。 當您需要套用此修正程式時,請與 Microsoft 支援人員聯繫。

此問題已先在下列 SQL Server 累積更新中修正。

SQL Server 2012 SP1 的累積更新 6 /zh-tw/help/2874879

關於 SQL Server 的累積更新

SQL Server 的每個新累積更新都包含所有 Hotfix 和先前累積更新的所有安全性修正程式。 查看 SQL Server 的最新累積更新:

      

狀態

Microsoft 已確認這是「適用對象」一節中列出的 Microsoft 產品中的問題。