الجزء
ال14: استبدال القيمة الملغية
Replacing NULL Value
يوجد ثلاث طرق لأستبدال القيمة
الملغية NULL في الSQL Server :
· ISNULL({NULL_VALUE},{VALUE_TO_REPLACE_WITH})
· COALESCE({NULL_VALUE},{VALUE_TO_REPLACE_WITH})
· SELECT
CASE
WHEN {NULL_VALUE} IS NULL THEN
{VALUE_TO_REPLACE_WITH}
ELSE
{SHOW_SOMETHING_ELSE}
END
CASE
WHEN {NULL_VALUE} IS NULL THEN
{VALUE_TO_REPLACE_WITH}
ELSE
{SHOW_SOMETHING_ELSE}
END
في الجزء ال13 تكلمنا عن الربط
الذاتي Self-Join, وانشأنا جدول للموظفين وللمدراء, يوجد في
احد حقول هذا الجدول قيمة ملغية NULL كالأتي:
مثالنا لهذا اليوم هو مثال واحد: اريد استرجاع كل
المدراء مع موظفيهم واريد استبدال اي قيمة للمدير ملغية NULL ب"No Manager":
الحل:
اول شيء اريد استرجاع كل موظف ومديره كالأتي:
USE [test]
GO
SELECT E.Name as [Employee Name], M.Name as [Manager Name]
FROM tblEmployees_Managers E
LEFT JOIN tblEmployees_Managers M
ON E.ManagerID = M.EmployeeID
لاحظ ان نوع الربط ذاتي مشار الى الربط
الخارجي الأيسر Self-join:Left
Outer join
, اخترت الربط الخارجي الأيسر لأن جدول الموظفين الوهمي على اليسار والمدراء على
اليمين, حيث سيسترجع كل قيم الموظفين مع مايقابلهم من مدراء , لكن يوجد موظف واحد
ليس له مدير وهو "صفاء" السبب في ذلك لأنه المدير العام, حيث قيمة مديره
"NULL", السؤال هنا
كيف نستبدل هذه القيمة ب"no manager":
الجواب:
الطريقة الأولى: بأستخدام:
· ISNULL({NULL_VALUE},{VALUE_TO_REPLACE_WITH})
الطريقة الثانية : بأستخدام:
· COALESCE({NULL_VALUE},{VALUE_TO_REPLACE_WITH})
الطريقة الثالثة: بأستخدام:
· SELECT
CASE
WHEN {NULL_VALUE} IS NULL THEN
{VALUE_TO_REPLACE_WITH}
ELSE
{SHOW_SOMETHING_ELSE}
END
CASE
WHEN {NULL_VALUE} IS NULL THEN
{VALUE_TO_REPLACE_WITH}
ELSE
{SHOW_SOMETHING_ELSE}
END
Comments
Post a Comment