البرمجة

كيفية استخدام بيان CASE في T-SQL

كيفية استخدام بيان CASE في T-SQL بشكل صحيح:

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

sql
-- قم بتعريف المتغير الذي ستخزن فيه القيمة الناتجة من الاستعلام DECLARE @result AS DECIMAL(18, 2) -- استخدم بيان SELECT لاسترجاع القيمة المطلوبة وحسابها SELECT @result = SUM(basepay) FROM dbo.tblPayments WHERE ClientID = 1 AND MONTH(paymentfor) = 1 -- استخدم بيان CASE للتحقق من قيمة المتغير @result وتعيين القيمة المناسبة بناءً على ذلك SET @result = CASE WHEN @result IS NULL THEN 0.00 -- في حالة أن @result يكون قيمة NULL، قم بتعيينها إلى 0.00 ELSE @result -- إذا كان @result ليس NULL، فقم بتركه كما هو END -- قم بطباعة القيمة الناتجة PRINT @result

الآن دعنا نفسر الكود:

  1. قمنا بتعريف متغير @result كمتغير من النوع DECIMAL وحددنا دقة الأرقام العشرية له.

  2. استخدمنا بيان SELECT لحساب المجموع الإجمالي للأجور الأساسية (basepay) من جدول tblPayments حيث يكون ClientID مساويًا لـ 1 وشهر الدفع (paymentfor) يساوي 1.

  3. بعد ذلك، استخدمنا بيان CASE للتحقق من قيمة المتغير @result. إذا كانت قيمته NULL، فسنعيّنها إلى 0.00، وإذا كانت غير ذلك، فسنتركها كما هي.

  4. أخيرًا، قمنا بطباعة القيمة النهائية للمتغير @result.

باستخدام هذا الكود، ستتمكن من حساب المجموع الإجمالي للأجور الأساسية وضمان أن قيمة الناتج لن تكون NULL بفضل استخدام بيان CASE بشكل صحيح.

المزيد من المعلومات

بالطبع، سأوفّر المزيد من المعلومات حول كيفية استخدام بيان CASE في T-SQL بشكل أكثر تفصيلاً وتمحوراً.

بيان CASE في T-SQL يسمح بتنفيذ منطق معقد داخل الاستعلام SQL، وذلك من خلال تحديد شروط متعددة وتقديم نتائج مختلفة استنادًا إلى تلك الشروط. يمكن استخدام بيان CASE في عدة سياقات، بما في ذلك تحويل البيانات، وتقسيم البيانات، وإنشاء حقول محسوبة، وغيرها.

في السياق الذي قدمته، استخدمت بيان CASE للتحقق مما إذا كانت قيمة المتغير @result هي NULL أم لا، وتعيين قيمة افتراضية في حال كانت NULL. هذا يضمن أن لا تظهر قيمة NULL في النتيجة النهائية.

البنية الأساسية لبيان CASE هي كما يلي:

sql
CASE WHEN condition1 THEN result1 WHEN condition2 THEN result2 ... ELSE default_result END
  • يتم فحص كل شرط (condition) بالتسلسل. إذا كانت الشرط صحيحة، يتم استخدام القيمة المقابلة له (result)، ويتم تجاهل باقي الشروط.
  • يمكنك إضافة عدة شروط ونتائج، ولكن يجب أن يكون هناك شرط واحد على الأقل.
  • يمكنك استخدام ELSE لتحديد قيمة افتراضية في حال عدم تطابق أي من الشروط.
  • يمكن استخدام بيانات معقدة داخل قسم الشروط، بما في ذلك الاستعلامات الفرعية.

عند استخدام بيان CASE بشكل صحيح، يمكنك تنفيذ منطق معقد ومتعدد الشروط في استعلامات SQL، مما يساعد في تنظيم البيانات وضمان دقة النتائج المسترجعة.

زر الذهاب إلى الأعلى