Platí pro
SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Standard SQL Server 2012 Web

Příznaky

Zvažte následující scénář:

  • Máte počítač s nainstalovaným Microsoft SQL serverem 2012.

  • Máte dotaz, který obsahuje příkaz case v příkazu Select a příkaz case v příkazu Seskupit podle .

  • Dva příkazy case vyhodnotí na hodnotu null.

  • Spustíte dotaz.

V tomto scénáři se zobrazí následující chybová zpráva:

Msg 8120, úroveň 16, stát 1, řádek 3Column ' <název sloupce> ' je v seznamu Select neplatný, protože není obsažen v agregační funkci ani v klauzuli Group by (seskupit podle).

Spustíte například následující dotaz: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 V dotazu je výraz "když 1 = 2 then T1. Sloupec1 else 10" vyhodnocen jako 10. Tento problém nastane, když nahradíte "10" pomocí NULL.PoznámkaTento problém nenastane, když z příkazu Select nebo z příkazu Group by odeberete některou z těchto možností :

Každá nová kumulativní aktualizace pro SQL Server obsahuje všechny opravy hotfix a všechny opravy zabezpečení, které byly součástí předchozí kumulativní aktualizace. Podívejte se na nejnovější kumulativní aktualizace SQL serveru:

Stav

Společnost Microsoft potvrzuje, že se jedná o problém v produktech této společnosti, které jsou uvedeny v části Informace v tomto článku jsou určeny pro produkt.

Potřebujete další pomoc?

Chcete další možnosti?

Prozkoumejte výhody předplatného, projděte si školicí kurzy, zjistěte, jak zabezpečit své zařízení a mnohem více.