Triệu chứng
Hãy xem xét tình huống sau:
-
Bạn đã cài đặt máy tính với Microsoft SQL Server 2012.
-
Bạn có một truy vấn có chứa một câu lệnh vụ án trong một câu lệnh Select và một tuyên bố vụ án trong một nhóm theo câu lệnh.
-
Hai câu lệnh được đánh giá là NULL.
-
Bạn chạy truy vấn.
Trong trường hợp này, bạn nhận được thông báo lỗi sau đây:
Msg 8120, Level 16, State 1, dòng <cột '> ' không hợp lệ trong danh sách chọn vì nó không được chứa trong một hàm tổng hợp hoặc nhóm theo mệnh đề.
Ví dụ, bạn chạy truy vấn sau đây: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 Trong truy vấn, câu lệnh "khi 1 = 2 rồi T1. col1 Else 10" sẽ đánh giá đến 10. Khi bạn thay thế "10" bằng cách sử dụng NULL, sự cố này xảy ra.Lưu ý Vấn đề này không xảy ra khi bạn loại bỏ một trong các báo cáo vụ việc từ câu lệnh Select hoặc từ nhóm theo câu lệnh.
Giải pháp
Sau khi bạn áp dụng bản sửa lỗi này, bạn phải bật cờ theo dõi để thực hiện công việc hotfix. Vui lòng liên hệ với bộ phận hỗ trợ của Microsoft khi bạn cần áp dụng bản sửa lỗi này.
Vấn đề lần đầu tiên được khắc phục trong bản Cập Nhật tích lũy SQL Server sau đây.
Bản Cập Nhật tích lũy 6 cho SQL Server 2012 SP1 /en-us/help/2874879
Mỗi bản Cập Nhật tích lũy mới cho SQL Server chứa tất cả các hotfix và tất cả các bản sửa lỗi bảo mật đã được đưa vào bản Cập Nhật tích lũy trước đó. Kiểm tra các bản Cập Nhật tích lũy mới nhất cho SQL Server:
Trạng thái
Microsoft đã xác nhận đây là sự cố trong các sản phẩm của Microsoft được liệt kê trong phần "Áp dụng cho".