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”.