S’applique àSQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Standard SQL Server 2012 Web

Symptômes

Prenons l’exemple du scénario suivant :

  • Vous avez un ordinateur sur lequel Microsoft SQL Server 2012 est installé.

  • Vous avez une requête qui contient une instruction case dans une instruction Select et une instruction case dans une instruction Group by .

  • Les deux instructions de cas ont pour résultat la valeur null.

  • Vous exécutez la requête.

Dans ce scénario, le message d'erreur suivant s'affiche :

MSG 8120, niveau 16, état 1, ligne 3Column' <nom de la colonne> 'n’est pas valide dans la liste Sélectionner, car il n’est pas inclus dans une fonction d’agrégation ou dans la clause Group by.

Par exemple, vous exécutez la requête suivante :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 Dans la requête, l’instruction "If 1 = 2 Then T1. col1 else 10" est évaluée à 10. Lorsque vous remplacez « 10 » en utilisant NULL, ce problème se produit.RemarqueCe problème ne se produit pas lorsque vous supprimez l' une des affirmations de l’instruction Select ou de l’instruction Group by .

Chaque nouvelle mise à jour cumulative pour SQL Server contient tous les correctifs et les correctifs de sécurité inclus dans la mise à jour cumulative précédente. Consultez les dernières mises à jour cumulatives pour SQL Server :

Statut

Microsoft a confirmé l’existence de ce problème dans les produits Microsoft répertoriés dans la section « S’applique à ».

Besoin d’aide ?

Vous voulez plus d’options ?

Explorez les avantages de l’abonnement, parcourez les cours de formation, découvrez comment sécuriser votre appareil, etc.