Gejala
Pertimbangkan skenario berikut:
-
Anda memiliki komputer yang memiliki Microsoft SQL Server 2012 terinstal.
-
Anda memiliki kueri yang berisi pernyataan kasus dalam pernyataan Select dan pernyataan kasus dalam pernyataan Kelompokkan menurut .
-
Dua pernyataan kasus MENGEVALUASI ke null.
-
Anda menjalankan kueri.
Dalam skenario ini, Anda menerima pesan kesalahan berikut:
MSG 8120, tingkat 16, negara bagian 1, baris 3Column ' <nama kolom> ' tidak valid dalam daftar pilih karena tidak terdapat dalam salah satu fungsi agregat atau klausul Group by.
Misalnya, Anda menjalankan kueri berikut ini: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 Dalam kueri, pernyataan "ketika 1 = 2 lalu T1. col1 Else 10" mengevaluasi ke 10. Saat Anda mengganti "10" dengan menggunakan NULL, masalah ini terjadi.Catatan Masalah ini tidak terjadi ketika Anda menghapus salah satu dari pernyataan kasus dari pernyataan Select atau dari pernyataan Group by .
Pemecahan Masalah
Setelah Anda menerapkan perbaikan, Anda harus mengaktifkan bendera pelacakan untuk membuat hotfix berfungsi. Hubungi dukungan Microsoft saat Anda perlu menerapkan perbaikan ini.
Masalah ini pertama kali diperbaiki dalam pembaruan kumulatif SQL Server berikut ini.
Pembaruan kumulatif 6 untuk SQL Server 2012 SP1 /en-us/help/2874879
Setiap pembaruan kumulatif baru untuk SQL Server berisi semua hotfix dan semua perbaikan keamanan yang disertakan dengan pembaruan kumulatif sebelumnya. Lihat pembaruan kumulatif terbaru untuk SQL Server:
Status
Microsoft telah mengonfirmasi bahwa ini adalah masalah pada produk Microsoft yang tercantum di bagian "Berlaku untuk".