البرمجة

كيفية استخدام IS NULL في SQL

عندما تقوم بكتابة الاستعلام في SQL، فإنك بشكل عام تحدد شروطا لتصفية الصفوف التي ترغب في استردادها. في الحالة الأولى من الاستعلام، أنت ترغب في استرداد السكان (Residents) الذين ليس لديهم شقة (Apartment) متطابقة في الجدول الثاني. أما في الحالة الثانية، فأنت تحاول استرداد السكان الذين ليس لديهم قيمة لـ ApartmentID في الجدول الأيسر.

الفرق بين الاستعلامين يكمن في الشرط المستخدم. في الحالة الأولى، استخدمت “R.ApartmentID IS NULL” للتحقق مما إذا كانت قيمة ApartmentID في جدول السكان غير موجودة في جدول الشقق، وهو الشرط الصحيح لاسترداد الصفوف التي لا توجد لها قيمة متطابقة في الجدول الثاني (الشقق). أما في الحالة الثانية، استخدمت “R.ApartmentID = NULL”، وهذا الشرط لا يعمل كما تتوقع.

عند مقارنة قيمة ما بـ NULL في SQL، يجب استخدام “IS NULL” بدلاً من ” = NULL”. السبب في ذلك هو أن NULL ليس قيمة، بل هو علامة للغياب عن القيمة. لذا، عند استخدام “=”، فإنه لا يتحقق من الغياب عن القيمة بل يحاول المقارنة بقيمة NULL ذاتها، مما يؤدي إلى نتيجة غير متوقعة.

باختصار، في الحالة الأولى، الشرط الصحيح “R.ApartmentID IS NULL” يحدد الصفوف التي لا توجد لها قيمة متطابقة في الجدول الثاني، بينما الشرط “R.ApartmentID = NULL” في الحالة الثانية لا يعمل بالشكل المطلوب لأنه لا يتحقق من الغياب عن القيمة بل يحاول المقارنة بقيمة NULL نفسها.

المزيد من المعلومات

عندما تتعلم SQL، فإن فهم الطرق الصحيحة للبحث عن البيانات وتصفيتها يعد جزءًا أساسيًا من ذلك. في مثالك، كنت تحاول استرداد السكان الذين ليس لديهم شقة متطابقة في الجدول الثاني (tblApartment). لكن الفارق بين الاستعلامين يكمن في كيفية كتابة الشرط المستخدم لتحقيق ذلك.

في الاستعلام الأول، استخدمت “R.ApartmentID IS NULL”، وهذا يُعتبر الشرط الصحيح لفحص ما إذا كانت قيمة ApartmentID في جدول السكان غير موجودة في جدول الشقق. وباستخدام “IS NULL”، يمكنك بشكل صحيح التحقق من وجود القيمة NULL، التي تعني عدم وجود قيمة محددة للحقل.

أما في الاستعلام الثاني، فقد استخدمت “R.ApartmentID = NULL”، وهذا الشرط لا يعمل كما تتوقع. لماذا؟ لأن عند مقارنة قيمة بـ NULL في SQL، يجب استخدام “IS NULL” بدلاً من ” = NULL”. السبب في ذلك هو أن NULL ليس قيمة، بل هو علامة للغياب عن القيمة.

عند استخدام “=”، يحاول SQL ببساطة مقارنة القيمة بقيمة NULL ذاتها، مما يؤدي إلى نتيجة غير متوقعة. لذا، عند التحقق من الغياب عن القيمة، يجب استخدام “IS NULL” للتأكد من أن الشرط يتحقق بشكل صحيح.

باختصار، الفارق بين الاستعلامين يعكس كيفية كتابة الشرط لتحديد الصفوف التي لا توجد لها قيمة متطابقة في الجدول الثاني. استخدام “IS NULL” يعطي نتائج صحيحة بينما استخدام “=” ليس له تأثير مرغوب فيه عند المقارنة مع NULL.

مقالات ذات صلة

زر الذهاب إلى الأعلى
إغلاق

أنت تستخدم إضافة Adblock

يرجى تعطيل مانع الإعلانات حيث أن موقعنا غير مزعج ولا بأس من عرض الأعلانات لك فهي تعتبر كمصدر دخل لنا و دعم مقدم منك لنا لنستمر في تقديم المحتوى المناسب و المفيد لك فلا تبخل بدعمنا عزيزي الزائر