دوال التبديل في ال SQL Server
هي دوال تقوم بالتلاعب بالنتيجة التي نريدها اضهارها في الاستعلام ومنها
1- Case
2- Standard COALESCE and NULLIF اي انها من الدوال التي تتعامل معها كل انواع قواعد البيانات او بالاحرى اي لغة من لغات ال SQL
3- Nonstandard ISNULL, IIF, and CHOOSE اي انها الدوال المخصصة فقط في لغة ال TSQL
لنتابع الامثلة التالية
دالة ال Case
لنتخيل اننا في الجدول قمنا بخزن خاصية الجنس للموضف على اساس نوع البيانات من نوع bit اي استخدام ال TRUE وال FALSE
واردنا ان نقوم بطباعة تقرير يقوم بعرض اسم الجنس اي ذكر او انثى فنقوم باستخدام دالة ال CASE وذالك اي تقوم باختبار النتيجة القادمة من الجدول في حال كانت TRUE فأنها ذكر والعكس تماماً لنتابع المثال التالي
CREATE TABLE [dbo].[TBL_Emp](
[ID] [int] IDENTITY(1,1) NOT NULL,
[Name] [nvarchar](50) NULL,
[Gender] [bit] NULL,
CONSTRAINT [PK_TBL_Emp] PRIMARY KEY CLUSTERED
(
[ID] ASC
)
) ON [PRIMARY]
GO
insert into tbl_emp(name,gender)
values
(‘omar’,1),(‘NN’,0),(‘AA’,1)
GO
Select name,Gender,case Gender
when 1 then N’ذكر’
When 0 then N’انثى’
end AS GenderNams
from tbl_emp
GO
الان عبارة ال Case تكتب كما في الشكل التالي
CASE ColoumTest
When الشرط then النتيجة
Else تنفيذ في حالى عدم المطابقة
END
مثال استخدام ال Coalesce وال ISNULL
في حالة استخدام ال Coalescs فانة يقوم بأختبار نتيجتين كانت الاولى NULL فأنة يجلب قيمة الثانية ويهمل الاولى وال NULLIIF نفس العمل
اما في حالة ال ISNULL فانة يقوم ايظاً بأختبار نتيجتين في كانت الاولى NULL يقوم بأرجاع النتيجة الثانية على اساس انها القيمة الاولى
اما في حال استخدمنا ال II
كما في المثال التالي
IIF(<الشرط>, <القيمة الصحيحة>, <القيمة الخائة>)
اما عن طريقة استخدام ال CHOOSE
لنتابع المثال التالي
انه هنا يقوم بأرجاع القيمة الثانية لو حاولنا تبديل الرقم ال 3 ولاحظ النتيجة يقوم باهمال القيم الباقية وجلب قيمة المتغير رقم 3