الاتصال بالبيانات من نوع NULL عن طريق تابع يدعى ISNULL()

لربما كنت واحدا من المبرمجين الذين كان لهم العديد من التجارب في غمار قواعد البيانات, وبالتالي ستكون الحالة NULL من الحالات المشهورة, دعنا في هذه المقالة نتعرف على أحد التوابع الذي يوفر لنا المرونه في التعامل مع حالة NULL

 

يوجد في الواقع العديد من التوابع الخاصة بالتعامل مع NULL، أحد هذه التوابع هو ISNULL().

التابع ISNULL() يقبل متحول Variable أو تعبير Expression، ويقوم بعملية إختبار فيما إذا كانت القيمة هي NULL، إذا كانت القيمة هي NULL، فإن التابع سوف يعيد قيمة محددة بدلا من قيمة الـ NULL، أما إذا كانت قيمة التعبير ليست NULL، فإن التابع سوف يعيدها كقيمة إن شكل التابع هو كما يلي:

ISNULL ( check_expression , replacement_value )

على سبيل المثال:

 

ISNULL Expression

Value Returned

ISNULL(NULL, 5)

5

ISNULL(5, 15)

5

ISNULL(MyColumnName, 0) where MyColumnName IS NULL

0

ISNULL(MyColumnName, 0) where MyColumnName = 3

3

ISNULL(MyColumnName, 0) where MyColumnName =Fred Farmer

Fred Farmer

 

الان دعنا نرى استخدام التابع في الاستعلام:

 

                                              Select cu.CompanyName,

                                                    IsNull(Cast ((Select Min(o.OrderDate)

                                                                From Orders As o

                                                                Where o.CustomerID = cu.CustomerID) As varchar), ‘ Never Ordered’)

                                                                As ‘Order Date’

                                              From Customers As cu

 

هناك سطران بدون تعليمة ISNULL() كانا سينتجان كما يلي:

 

             

              FISSA Fabrica Inter. Salchichas S.A.      NULL

             

              Paris spécialité                                              NULL

            

 

ولكن باستخدامه سينتجان كما يلي:

 

           

           FISSA Fabrica Inter. Salchichas S.A.     NEVER ORDERED

          

           Paris spécialités                                              NEVER ORDERED

         

 

تم استخدام التابع CAST() حتى يعمل هذا الاستعلام والسبب في ذلك لأن ناتج التنفيذ سينتج سيعطي بيانات من نوع تاريخ(DateTime) طبعا للعمود Order Date، وبالتالي عندما يصل التنفيذ إلى أول NULL سيتولد خطأ وذلك بسبب أن عبارة Never Ordered لا يمكن تحويلها إلى تاريخ.

 

الأمثلة مطبقة على قاعدة بيانات Northwind.

أخذت هذه المقالة من كتاب Beginning SQL Server 2005.

2 thoughts on “الاتصال بالبيانات من نوع NULL عن طريق تابع يدعى ISNULL()

أضف تعليقاً

إملأ الحقول أدناه بالمعلومات المناسبة أو إضغط على إحدى الأيقونات لتسجيل الدخول:

WordPress.com Logo

أنت تعلق بإستخدام حساب WordPress.com. تسجيل خروج   / تغيير )

صورة تويتر

أنت تعلق بإستخدام حساب Twitter. تسجيل خروج   / تغيير )

Facebook photo

أنت تعلق بإستخدام حساب Facebook. تسجيل خروج   / تغيير )

Google+ photo

أنت تعلق بإستخدام حساب Google+. تسجيل خروج   / تغيير )

Connecting to %s