KB2873474 — POPRAWKA: Po uruchomieniu zapytania w programie SQL Server 2012 r. błąd "Kolumna "<nazwa> kolumny jest nieprawidłowa na liście wyboru, ponieważ nie jest zawarta ani w funkcji agregującej, ani w klauzuli GROUP BY"

Dotyczy
SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Standard SQL Server 2012 Web

Objawy

Rozważmy następujący scenariusz:

  • Masz komputer z zainstalowanym programem Microsoft SQL Server 2012.
  • Masz zapytanie zawierające instrukcję CASE w instrukcji SELECT i instrukcję CASE w instrukcji GROUP BY.
  • Te dwie instrukcje CASE zwracają wartość NULL.
  • Zapytanie jest uruchamiane przez użytkownika.

W tym scenariuszu jest wyświetlany następujący komunikat o błędzie:

Uwaga

Wiadomość 8120, Poziom 16, Stan 1, Wiersz 3

Kolumna "<nazwa >kolumny" jest nieprawidłowa na liście wyboru, ponieważ nie jest zawarta ani w funkcji agregującej, ani w klauzuli GROUP BY.

Na przykład należy uruchomić następujące zapytanie:create database test
przejdź
Użyj testu
przejdź
Create Table TVT ( V1t Binary(1) Null)
create table tln (ln numeric(5) not null)
przejdź
wybieranie
koperta
Jeśli 1=2, to t1.kol1
w przeciwnym razie 10
koniec,
koperta
Gdy t1.kol1 = 2, to t1.kol2
koniec
z (
Wybierz T2.V1T jako Kol1, 10 jako Kol2
Z TVT T2
) T1
Grupuj według
koperta
Jeśli 1=2, to t1.kol1
w przeciwnym razie 10
koniec,
koperta
Gdy t1.kol1 = 2, to t1.kol2
koniec
go W zapytaniu wyrażenie "gdy 1=2 to t1.kol1 inaczej 10" daje w wyniku 10. Ten problem występuje po zamianie liczby "10" na wartość NULL.
Uwaga Ten problem nie występuje w przypadku usunięcia jednej z instrukcji CASE z instrukcji SELECT lub GROUP BY.

Rozwiązanie

Po zastosowaniu poprawki należy włączyć flagę śledzenia, aby poprawka działała. Skontaktuj się z pomocą techniczną firmy Microsoft, gdy będzie konieczne zastosowanie tej poprawki.

Ten problem został po raz pierwszy rozwiązany w następującej aktualizacji zbiorczej programu SQL Server.

Zbiorcza aktualizacja 6 dla SQL Server 2012 z dodatkiem SP1 /en-us/help/2874879

Informacje o aktualizacjach zbiorczych dla programu SQL Server

Każda nowa aktualizacja zbiorcza programu SQL Server zawiera wszystkie poprawki zabezpieczeń uwzględnione w poprzedniej aktualizacji skumulowanej. Sprawdź najnowsze aktualizacje zbiorcze dla programu SQL Server:

      

Stan

Firma Microsoft potwierdziła, że jest to problem dotyczący produktów firmy Microsoft wymienionych w sekcji „Dotyczy”.