الاتصال بالبيانات من نوع NULL عن طريق تابع يدعى ISNULL()
يوجد في الواقع العديد من التوابع الخاصة بالتعامل مع 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és 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.
كتبت هذه المقالة بتاريخ: السبت، 22 جمادى الثانية، 1428، الموافق: السبت، 07 تموز، 2007