بيان الحالة والحالة المتداخلة في SQL Server: مثال T-SQL

⚡ ملخص ذكي

CASE هو تعبير شرطي في SQL Server يقوم بإرجاع قيمة بناءً على الشرط الأول الذي يتم تقييمه على أنه صحيح، ويوفر نماذج بسيطة ونماذج بحث بالإضافة إلى التداخل داخل IF…ELSE و UPDATE و ORDER BY.

  • 🧭 القيمة المشروطة: تُرجع عبارة CASE قيمة تعتمد على شرط WHEN الذي يتم تقييمه أولاً على أنه صحيح.
  • 1️⃣ حالة بسيطة: تقوم عبارة CASE البسيطة بمقارنة تعبير واحد بقائمة من القيم وتجري فحصًا للمساواة لكل WHEN.
  • 🔎 تم البحث في القضية: يقوم CASE الذي تم البحث فيه بتقييم تعبير منطقي منفصل لكل WHEN، ويدعم النطاقات وعوامل عدم المساواة.
  • ➖ ELSE اختياري: عندما لا تتطابق عبارة WHEN ويتم حذف عبارة ELSE، فإن تعبير CASE يُرجع قيمة NULL.
  • 🪆 التعشيش: يمكن تضمين عبارة CASE داخل عبارة CASE أخرى وداخل عبارة IF…ELSE لمنطق متعدد المستويات.
  • 🔧 ما وراء الاختيار: إلى جانب SELECT، تعمل CASE مع عبارات UPDATE و ORDER BY لتوجيه التحديثات الشرطية والفرز.

عبارة CASE وعبارة CASE المتداخلة في SQL Server مع أمثلة T-SQL

نظرة عامة على القضية في الحياة الحقيقية!

ومرة أخرى، في الحياة الواقعية، نقوم بأفعال مختلفة تبعاً لنتائج الظروف المختلفة. ولتوضيح ذلك أكثر، انظر إلى المثال التالي:

  • إذا كانت تذاكر الطيران أقل من 100 دولار، فسأزور لوس أنجلوس.
  • إذا كانت أسعار تذاكر الطيران تتراوح بين 100 و 200 دولار، فسأزور نيويورك.
  • إذا كانت أسعار تذاكر الطيران تتراوح بين 200 و 400 دولار، فسأزور أوروبا.
  • وإلا، فسأفضل زيارة موقع سياحي قريب.

دعونا نفكر في تصنيف الشرط والفعل بشكل منفصل عن المثال أعلاه:

الشروط – تذاكر الطيران يتم تنفيذ الإجراءات فقط إذا كان الشرط صحيحًا
Less من $ 100 قم بزيارة لوس أنجلوس
بين 100 دولار و 200 دولار قم بزيارة نيويورك
بين 200 دولار و 400 دولار زيارة أوروبا
لم يتم استيفاء أي من الشروط المذكورة أعلاه مكان سياحي قريب

في المثال أعلاه، نلاحظ أن نتيجة الشروط المختلفة تحدد إجراءً منفصلاً. على سبيل المثال، لن يقوم الزائر بزيارة نيويورك إلا إذا كان سعر تذكرة الطيران يتراوح بين 100 و200 دولار. وبالمثل، مرض التصلب العصبي المتعدد مزود توفر عبارة CASE أيضًا إمكانية تنفيذ عبارات T-SQL مختلفة بناءً على نتائج شروط مختلفة.

ما هو بيان الحالة في SQL Server؟

بيان الحالة في ملقم SQL هو امتداد لـ إذا كان غير ذلك على عكس عبارة IF…ELSE، التي تسمح بشرط واحد فقط كحد أقصى، تسمح عبارة CASE للمستخدم بتطبيق شروط متعددة لتنفيذ مجموعات مختلفة من الإجراءات في MS SQL. وتعيد قيمة مقابلة مرتبطة بالشرط الذي حدده المستخدم.

لنتعلم كيفية استخدام CASE في SQL وسنتناول مفهومها في الأقسام التالية. في لغة MS SQL، يوجد نوعان من عبارة CASE:

  • حالة بسيطة
  • حالة بحثت

حالة بسيطة

صيغة الحالة البسيطة

CASE <Case_Expression>
     WHEN Value_1 THEN Statement_1
     WHEN Value_2 THEN Statement_2
     .
     .
     WHEN Value_N THEN Statement_N
     [ELSE Statement_Else]   
END AS [ALIAS_NAME]

هنا:

  • يشير المعامل Case_Expression إلى التعبير الذي سيتم مقارنته في النهاية بـ Value_1 و Value_2 وما إلى ذلك.
  • تشير المعلمات Statement_1 و Statement_2… إلى العبارات التي سيتم تنفيذها إذا كانت Case_Expression = Value_1 و Case_Expression = Value_2 وهكذا.
  • باختصار، الشرط هو ما إذا كانت Case_Expression = Value_N، والإجراء هو تنفيذ Statement_N إذا كانت النتيجة أعلاه TRUE.
  • يُعدّ ALIAS_NAME اختياريًا، وهو الاسم المستعار المُعطى لنتيجة عبارة CASE في SQL Server. ويُستخدم غالبًا عند استخدام CASE في جملة SELECT في SQL Server.

قواعد للحالة البسيطة

  • لا تسمح الحالة البسيطة إلا بفحص المساواة بين Case_Expression مع Value_1 و Value_N.
  • تتم مقارنة تعبير الحالة بقيمة، بالترتيب، بدءًا من القيمة الأولى، أي القيمة 1. فيما يلي طريقة التنفيذ:
  • إذا كان Case_Expression مكافئًا لـ Value_1، فسيتم تخطي المزيد من العبارات عندما...THEN، وسينتهي تنفيذ CASE على الفور.
  • إذا لم تتطابق قيمة Case_Expression مع قيمة Value_1، تتم مقارنتها مع قيمة Value_2 للتحقق من التكافؤ. وتستمر هذه العملية حتى تجد قيمة مكافئة لها من بين القيم Value_1 و Value_2 وهكذا.
  • إذا لم يتطابق أي شيء، ينتقل التحكم إلى عبارة ELSE، ويتم تنفيذ Statement_Else.
  • آخر اختياري.
  • إذا لم يكن ELSE موجودًا ولم تتطابق Case_Expression مع أي من القيم، فسيتم عرض NULL.

يوضح الرسم البياني أدناه مسار تنفيذ حالة بسيطة:

مخطط انسيابي يوضح كيفية قيام حالة بسيطة بتقييم كل قيمة WHEN بالترتيب

أمثلة

لنفترض أن لدينا جدولاً باسم 'Guru99' مع عمودين، Tutorial_ID و Tutorial_name، وأربعة صفوف، كما هو موضح أدناه. سنستخدم هذا 'Guruجدول 99 في الأمثلة التالية.

عينة Guruجدول رقم 99 يحتوي على عمودين: Tutorial_ID و Tutorial_name، وأربعة صفوف.

الاستعلام 1: حالة بسيطة مع خيار "لا يوجد شيء آخر".

SELECT Tutorial_ID, Tutorial_name,
CASE Tutorial_name
	WHEN 'SQL' THEN 'SQL is developed by IBM'
	WHEN 'PL/SQL' THEN 'PL/SQL is developed by Oracle Corporation.'
	WHEN 'MS-SQL' THEN 'MS-SQL is developed by Microsoft Corporation.'
END AS Description
FROM Guru99

النتيجة: يوضح الرسم البياني أدناه تدفق تنفيذ حالة بسيطة بدون أي شيء آخر.

نتيجة حالة بسيطة بدون شرط آخر، تُظهر Description لكل Tutorial_name

الاستعلام الثاني: حالة بسيطة مع خيار ELSE

SELECT Tutorial_ID, Tutorial_name,
CASE Tutorial_name
	WHEN 'SQL' THEN 'SQL is developed by IBM'
	WHEN 'PL/SQL' THEN 'PL/SQL is developed by Oracle Corporation.'
	WHEN 'MS-SQL' THEN 'MS-SQL is developed by Microsoft Corporation.'
	ELSE 'This is NO SQL language.'
END AS Description
FROM Guru99

النتيجة: يوضح الرسم البياني أدناه تدفق تنفيذ حالة بسيطة مع عبارة ELSE.

نتيجة استخدام عبارة CASE بسيطة مع ELSE، تُعيد النص الافتراضي للصفوف غير المتطابقة

حالة بحثت

صيغة البحث عن الحالة

CASE 
     WHEN <Boolean_Expression_1> THEN Statement_1
     WHEN <Boolean_Expression_2> THEN Statement_2
     .
     .
     WHEN <Boolean_Expression_N> THEN Statement_N
     [ELSE Statement_Else]   
END AS [ALIAS_NAME]

هنا:

  • يشير المعامل Boolean_Expression_1… إلى التعبير الذي سيتم تقييمه ليكون صحيحًا أو خاطئًا.
  • تشير المعلمات Statement_1 و Statement_2… إلى العبارات التي سيتم تنفيذها إذا كانت نتيجة Boolean_Expression_1 و Boolean_Expression_2 المقابلة هي TRUE.
  • باختصار، الشرط هو Boolean_Expression_1… والإجراء هو تنفيذ Statement_N إذا كان Boolean_Expression_1 أعلاه صحيحًا.
  • يُعدّ ALIAS_NAME اختياريًا، وهو الاسم المستعار المُعطى لنتيجة عبارة CASE. ويُستخدم غالبًا عند استخدام CASE في جملة SELECT.

قواعد الحالة التي تم البحث فيها

  • بخلاف الحالة البسيطة، فإن الحالة التي يتم البحث فيها لا تقتصر على فحص المساواة فقط، بل تسمح بتعبير منطقي.
  • يتم تقييم التعبير المنطقي، بالتسلسل، بدءًا من التعبير المنطقي الأول، أي Boolean_Expression_1. فيما يلي طريقة التنفيذ:
  • إذا كانت قيمة Boolean_Expression_1 صحيحة، فسيتم تخطي عبارات WHEN…THEN اللاحقة، وسينتهي تنفيذ CASE على الفور.
  • إذا كانت قيمة التعبير المنطقي الأول (Boolean_Expression_1) خاطئة، فسيتم تقييم التعبير المنطقي الثاني (Boolean_Expression_2) للتحقق من صحته. وتستمر عملية تقييم التعبير المنطقي حتى يُرجع أحد التعبيرات المنطقية القيمة الصحيحة (TRUE).
  • إذا لم يتطابق أي شيء، ينتقل التحكم إلى عبارة ELSE، ويتم تنفيذ Statement_Else.
  • كما هو الحال في الحالة البسيطة، فإن عبارة ELSE اختيارية في الحالة التي تم البحث عنها أيضًا.
  • إذا لم يكن ELSE موجودًا ولم تُرجع أي من التعبيرات المنطقية القيمة TRUE، فسيتم عرض NULL.

يوضح الرسم البياني أدناه مسار تنفيذ الحالة التي تم البحث عنها:

مخطط انسيابي يوضح كيفية قيام CASE المُبحث بتقييم كل تعبير منطقي بالترتيب

أمثلة

الاستعلام 1: حالة تم البحث فيها مع خيار "لا يوجد شيء آخر".

SELECT Tutorial_ID, Tutorial_name,
CASE 
 	WHEN Tutorial_name = 'SQL' THEN 'SQL is developed by IBM'
	WHEN Tutorial_name = 'PL/SQL' THEN 'PL/SQL is developed by Oracle Corporation.'
	WHEN Tutorial_name = 'MS-SQL' THEN 'MS-SQL is developed by Microsoft Corporation.'
END AS Description
FROM Guru99

النتيجة: يوضح الرسم البياني أدناه مسار تنفيذ الحالة التي تم البحث عنها بدون أي شيء آخر.

نتيجة بحث باستخدام عبارة CASE بدون ELSE، حيث يتم مطابقة كل Tutorial_name مع Descriptأيون

الاستعلام الثاني: الحالة التي تم البحث عنها مع خيار ELSE

SELECT Tutorial_ID, Tutorial_name,
CASE 
	WHEN Tutorial_name = 'SQL' THEN 'SQL is developed by IBM'
	WHEN Tutorial_name = 'PL/SQL' THEN 'PL/SQL is developed by Oracle Corporation.'
	WHEN Tutorial_name = 'MS-SQL' THEN 'MS-SQL is developed by Microsoft Corporation.'
	ELSE 'This is NO SQL language.'
END AS Description
FROM Guru99

النتيجة: يوضح الرسم البياني أدناه تدفق تنفيذ الحالة التي تم البحث عنها مع ELSE.

نتيجة بحث باستخدام عبارة CASE مع ELSE، والتي تُعيد النص الافتراضي للغات غير SQL

الفرق بين أسلوب التنفيذ: SIMPLE و SEARCH CASE

دعونا نلقي نظرة على مثال الحالة البسيطة أدناه:

SELECT Tutorial_ID, Tutorial_name,
CASE Tutorial_name
	WHEN 'SQL' THEN 'SQL is developed by IBM'
	WHEN 'PL/SQL' THEN 'PL/SQL is developed by Oracle Corporation.'
	WHEN 'MS-SQL' THEN 'MS-SQL is developed by Microsoft Corporation.'
	ELSE 'This is NO SQL language.'
END AS Description
FROM Guru99

هنا، يُعدّ 'Tutorial_name' جزءًا من عبارة CASE في لغة SQL. ثم تتم مقارنة قيمة 'Tutorial_name' مع كل قيمة WHEN، أي 'SQL'... حتى تتطابق قيمة 'Tutorial_name' مع قيمة WHEN.

على العكس من ذلك، فإن مثال SEARCH CASE لا يحتوي على تعبير CASE:

SELECT Tutorial_ID, Tutorial_name,
CASE 
 	WHEN Tutorial_name = 'SQL' THEN 'SQL is developed by IBM'
	WHEN Tutorial_name = 'PL/SQL' THEN 'PL/SQL is developed by Oracle Corporation.'
	WHEN Tutorial_name = 'MS-SQL' THEN 'MS-SQL is developed by Microsoft Corporation.'
END AS Description
FROM Guru99

هنا، تحتوي كل عبارة WHEN على تعبير منطقي شرطي خاص بها. يتم تقييم كل تعبير منطقي، مثل Tutorial_name = 'SQL'...، لتحديد ما إذا كان صحيحًا أم خاطئًا حتى يتم العثور على أول تعبير منطقي يُقيّم إلى صحيح.

الفرق بين الحالة البسيطة والحالة التي تم البحث عنها

حالة بسيطة حالة تم البحث فيها
تأتي الكلمة المفتاحية CASE متبوعة مباشرة بـ CASE_Expression وتأتي قبل عبارة WHEN.

على سبيل المثال:
قضية
عندما القيمة_1 ثم البيان_1...

تتبع الكلمة المفتاحية CASE عبارة WHEN، ولا يوجد تعبير بين CASE و WHEN.

على سبيل المثال:
الحالة عندما ثم البيان رقم 1…

في الحالة البسيطة، توجد قيمة لكل عبارة WHEN. تُقارن هذه القيم (Value_1، Value_2، ...) بتعبير CASE_Expression واحد بالتسلسل. تُقيّم النتيجة للتحقق من صحة أو خطأ كل عبارة WHEN.

على سبيل المثال:
قضية
عندما القيمة_1 ثم البيان_1...
عندما القيمة_2 ثم البيان_2...

في حالة البحث، يوجد تعبير منطقي لكل عبارة WHEN. تقوم هذه التعبيرات المنطقية (Boolean_Expression_1، Boolean_Expression_2، ...) بتقييم شرط الصواب/الخطأ لكل عبارة WHEN.

على سبيل المثال:
الحالات
متى ثم البيان_1...
متى ثم البيان_2...

لا تدعم الحالة البسيطة سوى فحص المساواة، أي ما إذا كان CASE_Expression = VALUE_1، VALUE_2…

على سبيل المثال:
قضية عندما تكون القيمة 1، فإن العبارة 1...
في المثال أعلاه، العملية الوحيدة التي يقوم بها النظام هي التحقق مما إذا كانت Case_Expression = Value_1.

باستخدام Boolean_Expression_N، تدعم حالة البحث أي عملية ينتج عنها قيمة منطقية. وتشمل هذه العملية عاملي المساواة وعدم المساواة.

على سبيل المثال:
الحالة عندما ثم البيان رقم 1…
في المثال أعلاه، يمكن أن يحتوي Boolean_Expression_1 على كل من عاملي "يساوي" و "لا يساوي"، مثل A = B، A != B.

الحالة المتداخلة: الحالة في حالة وجود خلاف ذلك

يمكننا استخدام CASE داخل عبارة IF…ELSE. نقوم بتعريف متغير للحصول على تذكرة الطيران، قم بتقسيم الفرع بناءً على قيمتها. فيما يلي مثال على كود MS-SQL:

DECLARE @Flight_Ticket int;
SET @Flight_Ticket = 190;
IF @Flight_Ticket > 400
   PRINT 'Visit Nearby Tourist Location';
ELSE 
BEGIN
    SELECT
	CASE 
	WHEN @Flight_Ticket BETWEEN 0 AND 100 THEN 'Visit Los Angeles'
	WHEN @Flight_Ticket BETWEEN 101 AND 200 THEN 'Visit New York'
	WHEN @Flight_Ticket BETWEEN 201 AND 400 THEN 'Visit Europe'
	END AS Location	
END

في المثال أعلاه، تم تضمين عبارة CASE داخل عبارة IF…ELSE. أولاً، يتم تنفيذ عبارة IF، وإذا كان شرط CASE في SQL Server خاطئًا، فسيتم تنفيذ عبارة ELSE. يحتوي جزء ELSE على عبارة CASE متداخلة في SQL. بناءً على قيمة تذكرة الطيران، يتم عرض إحدى النتائج التالية:

  • يقوم النظام بطباعة عبارة "قم بزيارة موقع سياحي قريب" إذا كانت تذاكر الطيران تزيد عن 400 دولار.
  • يقوم النظام بطباعة عبارة "قم بزيارة لوس أنجلوس" إذا كانت أسعار تذاكر الطيران تتراوح بين 0 و 100 دولار.
  • يقوم النظام بطباعة عبارة "قم بزيارة نيويورك" إذا كانت أسعار تذاكر الطيران تتراوح بين 101 دولار و 200 دولار.
  • يقوم النظام بطباعة عبارة "زيارة أوروبا" إذا كانت أسعار تذاكر الطيران تتراوح بين 201 دولارًا و 400 دولارًا.

تُظهر النتيجة أدناه الموقع الذي يتم إرجاعه عند تشغيل عبارة CASE المتداخلة داخل فرع ELSE:

نتيجة عبارة CASE متداخلة داخل عبارة IF…ELSE، حيث يتم طباعة موقع الزيارة للتذكرة

حالة متداخلة: حالة داخل الحالة

يمكننا استخدام عبارة CASE داخل عبارة CASE أخرى في لغة SQL. فيما يلي مثال على كود MS-SQL:

DECLARE @Flight_Ticket int;
SET @Flight_Ticket = 250;
SELECT
CASE 
WHEN @Flight_Ticket >= 400 THEN 'Visit Nearby Tourist Location.'
WHEN @Flight_Ticket < 400 THEN 
    	CASE 
		WHEN @Flight_Ticket BETWEEN 0 AND 100 THEN 'Visit Los Angeles'
		WHEN @Flight_Ticket BETWEEN 101 AND 200 THEN 'Visit New York'
		WHEN @Flight_Ticket BETWEEN 201 AND 400 THEN 'Visit Europe'
		END	
END AS Location

في المثال أعلاه، تم تضمين عبارة CASE داخل عبارة CASE أخرى. ينفذ النظام عبارة CASE الخارجية أولاً؛ إذا كان سعر تذكرة الطيران أقل من 400 دولار، يتم تنفيذ عبارة CASE الداخلية. يتبع الموقع المُعاد نفس نطاقات التذاكر كما في المثال السابق، لذا فإن تذكرة بقيمة 250 دولارًا تقع ضمن النطاق من 201 إلى 400 دولار، وتُعيد خيار "زيارة أوروبا".

تُظهر النتيجة أدناه الموقع الذي تم إرجاعه بواسطة CASE الداخلي لتذكرة بقيمة 250 دولارًا:

نتيجة حالة متداخلة داخل حالة أخرى، تعود إلى زيارة أوروبا للحصول على تذكرة بقيمة 250

حالة مع التحديث

لنفترض مجدداً أن لدينا 'Guruجدول 99' ذو عمودين وأربعة صفوف، كما هو موضح أدناه:

Guruالجدول 99 قبل تحديث الحالة، يعرض قيم Tutorial_Name الأصلية

يمكننا استخدام CASE مع UPDATE. فيما يلي مثال لرمز MS-SQL:

UPDATE Guru99
SET Tutorial_Name = 
	(
	CASE
	WHEN Tutorial_Name = 'SQL' THEN 'Structured Query language.'
	WHEN Tutorial_Name = 'PL/SQL' THEN 'Oracle PL/SQL'
	WHEN Tutorial_Name = 'MSSQL' THEN 'Microsoft SQL.'
	WHEN Tutorial_Name = 'Hadoop' THEN 'Apache Hadoop.'
	END
	)

في المثال أعلاه، تُستخدم عبارة CASE في عبارة UPDATE. وبناءً على قيمة Tutorial_Name، يتم تحديث عمود Tutorial_Name بقيمة عبارة THEN.

  • إذا كان Tutorial_Name = 'SQL'، فقم بتحديث Tutorial_Name إلى 'لغة الاستعلامات المهيكلة'.
  • إذا كان Tutorial_Name = 'PL/SQL'، فقم بتحديث Tutorial_Name إلى 'Oracle PL/SQL'.
  • إذا كان Tutorial_Name = 'MSSQL'، فقم بتحديث Tutorial_Name إلى 'Microsoft SQL'.
  • إذا كان Tutorial_Name = 'Hadoop'، فقم بتحديث Tutorial_Name إلى 'Apache Hadoop'.

يؤدي تشغيل العبارة إلى تحديث الصفوف المطابقة، كما هو موضح أدناه:

نتيجة تنفيذ عبارة CASE UPDATE على Guruجدول 99

دعونا نستفسر عنGuruجدول 99 للتحقق من القيم المحدثة:

Guruالجدول 99 بعد تحديث الحالة، يعرض قيم Tutorial_Name الجديدة

حالة مع النظام من قبل

يمكننا استخدام عبارة CASE مع عبارة ORDER BY. فيما يلي مثال على كود MS-SQL:

Declare @Order Int;
Set @Order = 1
Select * from Guru99 order by 
CASE 
	WHEN @Order = 1 THEN Tutorial_ID
	WHEN @Order = 2 THEN Tutorial_Name
	END
DESC

هنا، يُستخدم CASE مع ORDER BY. تم ضبط @Order على 1، وبما أن أول تعبير منطقي WHEN يُقيّم إلى TRUE، يتم اختيار Tutorial_ID لشرط ORDER BY. والنتيجة موضحة أدناه:

نتيجة استخدام عبارة ORDER BY مع تعبير CASE لترتيب النتائج Guruجدول 99 حسب معرف البرنامج التعليمي

حقائق مثيرة للاهتمام!

  • يمكن تضمين عبارة CASE داخل عبارة CASE أخرى وكذلك في عبارة IF…ELSE.
  • بالإضافة إلى SELECT، يمكن استخدام CASE مع عبارات SQL أخرى مثل UPDATE و ORDER BY.

الأسئلة الشائعة

الدالة IIF() هي اختصار لعبارة CASE ذات نتيجتين: تُرجع قيمةً عندما يكون الشرط صحيحًا، وقيمةً أخرى عندما يكون خاطئًا. أما عبارة CASE الكاملة فهي أكثر مرونة، ويمكنها اختبار العديد من شروط WHEN في عبارة واحدة.

نعم. بما أن دالة CASE تُرجع قيمة، فيمكن استخدامها في قائمة SELECT، وعبارة WHERE، وعبارة HAVING، وعبارة GROUP BY. في عبارة WHERE، تتيح لك دالة CASE تطبيق منطق تصفية مختلف بناءً على قيم الأعمدة الأخرى.

نعم. وضع تعبير CASE داخل SUM() أو COUNT() أو AVGتُجري الدالة () عملية تجميع مشروطة، حيث تقوم بحساب أو جمع الصفوف التي تُطابق كل شرط من شروط WHEN فقط. تُستخدم هذه التقنية غالبًا لإنشاء تقارير ملخصة على غرار الجداول المحورية.

تُعيد الدالتان COALESCE و ISNULL القيمة الأولى غير الفارغة فقط من القائمة. أما تعبير CASE فهو أوسع نطاقًا: إذ يُقيّم شروطًا منطقية عشوائية أو يُطابق القيم، ويُعيد نتيجة أول فرع صحيح.

تُرجع عبارة CASE نوع بيانات واحد. يحدد SQL Server نوع البيانات من خلال أسبقية أنواع البيانات لكل نتيجة من نتائج THEN و ELSE، لذا يجب أن تُرجع جميع الفروع أنواعًا متوافقة لتجنب أخطاء التحويل.

نعم. يمكن استخدام تعبير CASE في عبارة SELECT الخاصة بعرض، وفي أي مكان داخل إجراء مخزن أو دالة أو مُشغّل. وينطبق نفس بناء الجملة على جميع هذه العناصر.

نعم. مساعد الطيار جيثب يمكنك صياغة عبارات CASE البسيطة والمُبحثة، بما في ذلك عبارات CASE المتداخلة وعبارات CASE داخل عبارات UPDATE، من خلال موجه لغة طبيعية. راجع دائمًا شروط WHEN وترتيب الفروع ومعالجة عبارات ELSE قبل تشغيل الاستعلام.

تقوم أنظمة الذكاء الاصطناعي والتعلم الآلي المساعدة بترجمة قواعد اللغة الإنجليزية البسيطة إلى تعبيرات CASE بسيطة أو مُبحثة، وتقترح فروع WHEN المفقودة، وتُشير إلى التداخل.ping أو ظروف غير قابلة للتحقيق. يقوم المطور بمراجعة كل اقتراح للتأكد من صحته قبل نشره.

تلخيص هذه التدوينة بـ: