ينطبق على
SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Standard SQL Server 2012 Web

مؤشرات الخطأ

اطّلع على السيناريو التالي:

  • لديك كمبيوتر تم تثبيت Microsoft SQL Server 2012 عليه.

  • لديك استعلام يحتوي علي جمله case في جمله SELECT وجمله case في جمله GROUP BY .

  • يتم تقييم العبارتين CASE إلى قيمه خاليه.

  • تقوم بتشغيل الاستعلام.

في هذا السيناريو ، تتلقي رسالة الخطا التالية:

الرسالة 8120 ، المستوي 16 ، الحالة 1 ، السطر 3 العمود ' <اسم العمود> ' غير صالح في قائمه select لأنه غير مضمن في الدالة aggregate أو جمله GROUP by.

علي سبيل المثال ، يمكنك تشغيل الاستعلام التالي: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 في الاستعلام ، سيتم تقييم العبارة "عندما يكون 1 = 2 ، و t1 (col1) else 10» إلى 10. عند استبدال "10" باستخدام NULL ، تحدث هذه المشكلة.ملاحظه لا تحدث هذه المشكلة عند أزاله اي من عبارات CASE من جمله select أو من جمله GROUP BY .

يحتوي كل تحديث تراكمي جديد ل SQL Server علي كل الإصلاحات العاجلة وكل تصحيحات الأمان التي تم تضمينها في التحديث التراكمي السابق. اطلع علي آخر التحديثات التراكمية ل SQL Server:

الحالة

أقرت Microsoft أن هذه المشكلة تحدث في منتجات Microsoft المسردة في المقطع "تنطبق على".

هل تحتاج إلى مزيد من المساعدة؟

الخروج من الخيارات إضافية؟

استكشف مزايا الاشتراك، واستعرض الدورات التدريبية، وتعرف على كيفية تأمين جهازك، والمزيد.