التعبيرات الشرطية

يمكن استخدام التعبيرات الشرطية في إنشاء تعبيرات تحول القيم.

التعبيرات الشرطية المبينة في هذا القسم هي وحدات مكونة في إنشاء تعبيرات تقوم بتحويل قيمة من صيغة إلى أخرى.

اتبع القواعد التالية:

  • في جمل CASE، يكون لتعبير AND أسبقية على OR.
  • يجب تضمين السلسلة في علامات اقتباس أحادية.
التعبير مثال الوصف الصياغة

CASE (If)

CASE

WHEN score-par < 0 THEN 'Under Par'

WHEN score-par = 0 THEN 'Par'

WHEN score-par = 1 THEN 'Bogey'

WHEN score-par = 2 THEN 'Double Bogey'

ELSE 'Triple Bogey or Worse'

END

تقييم كل شرط WHEN وفي حالة تحقيقه، يتم تعيين القيمة في تعبير THEN المناظر.

في حالة عدم الوفاء بأي من شروط WHEN، فإنه يعين القيمة الافتراضية المحددة في التعبير ELSE. إذا لم يتم تحديد تعبير ELSE، فإن النظام يقوم تلقائيًا بإضافة ELSE NULL.

ملاحظة: يرجى الاطلاع على أفضل ممارسات استخدام جمل CASE في التحليلات والتمثيلات المرئية.

CASE WHEN request_condition1 THEN expr1 ELSE expr2 END

CASE (Switch)

CASE Score-par

WHEN -5 THEN 'Birdie on Par 6'

WHEN -4 THEN 'Must be Tiger'

WHEN -3 THEN 'Three under par'

WHEN -2 THEN 'Two under par'

WHEN -1 THEN 'Birdie'

WHEN 0 THEN 'Par'

WHEN 1 THEN 'Bogey'

WHEN 2 THEN 'Double Bogey'

ELSE 'Triple Bogey or Worse'

END

يشار إليه كذلك باعتباره CASE (Lookup). يتم فحص قيمة التعبير الأول، ثم تعبيرات WHEN. إذا كان التعبير الأول مطابقًا لأي تعبير WHEN، فإنه يعين القيمة في تعبير THEN المناظر.

في حالة عدم تطابق أي من تعبيرات WHEN، فإنه يقوم بتعيين القيمة الافتراضية المحددة في التعبير ELSE. إذا لم يتم تحديد تعبير ELSE، فإن النظام يقوم تلقائيًا بإضافة ELSE NULL.

إذا كان التعبير الأول مطابقًا لتعبير في عبارات WHEN متعددة، فسيتم تعيين التعبير اللاحق لأول تعبير مطابق فقط.

ملاحظة: يرجى الاطلاع على أفضل ممارسات استخدام جمل CASE في التحليلات والتمثيلات المرئية.

CASE expr1 WHEN expr2 THEN expr3 ELSE expr4 END

IfCase > ELSE

-

-

ELSE [expr]

IfCase > IFNULL

-

-

IFNULL([expr], [value])

IfCase > NULLIF

-

-

NULLIF([expr], [expr])

IfCase > WHEN

-

-

WHEN [Condition] THEN [expr]

IfCase > CASE

-

-

CASE WHEN [Condition] THEN [expr] END

SwitchCase > ELSE

-

-

ELSE [expr]

SwitchCase >IFNULL

-

-

IFNULL([expr], [value])

SwitchCase > NULLIF

-

-

NULLIF([expr], [expr])

SwitchCase > WHEN

-

-

WHEN [Condition] THEN [expr]

أفضل ممارسات استخدام جمل CASE في التحليلات والتمثيلات المرئية

عند استخدام جمل CASE في التقارير والمصنفات، ينبغي أن تنظر في أعمدة التقرير وترتيب التجميع، نظرًا لتأثيرها على كيفية حساب الإجماليات الفرعية والتعبيرات.

  • بشكل عام، تأكد عند استخدام تعبيرات CASE أن أية أعمدة مستخدمة في التعبير قد تم تضمينها في التقرير.

  • إذا كانت هناك أهمية لترتيب التجميع، فعليك بتغيير قاعدة التجميع في التقرير من "افتراضي" إلى "مجموع".
  • إذا لزم تقييم شرط قبل حساب التجميع (على سبيل المثال، في حالة عدم عرض العمود المرشح في التقرير)، فعليك باستخدام الدالة FILTER.

مثال

يستخدم هذا المثال بيانات العلامة التجارية ونوع المنتج والإيرادات.
فيما يلي وصف GUID-5837A210-154F-4FAC-922D-EBF0A21C349A-default.png
.png

لتطبيق شرط على تعيين إيرادات الكاميرا على 0، قم بتكوين التعبير الشرطي التالي: CASE WHEN Product_Type = ‘Camera’ THEN 0 ELSE Revenue END.

عند استبعاد Product_Type من التقرير، فإن البيانات لا تكون متاحة لتقييم التعبير، نظرًا لاشتماله على Product_Type، وتكون النتائج:
فيما يلي وصف GUID-22873F41-3679-45DF-821D-4167594FE069-default.png
.png

عن طريق إضافة PRODUCT_TYPE إلى التقرير وتعيين التجميع في التقرير إلى SUM، يتم حساب النتائج المجمعة بعد قيم المستوى الأساسي:
فيما يلي وصف GUID-0BEEE7E1-73CE-4BAA-98A2-683830E18E12-default.png
.png

البديل عن استخدام CASE هو استخدام تعبير ترشيح: FILTER(Revenue using Product_Type != ‘Camera’). يتم حساب التعبير بشكل مستقل عن أعمدة التقرير، ويتم تطبيق التجميعات بعد عملية الحساب:
فيما يلي وصف GUID-F428B1A7-A9FF-425B-80F1-BB709769CE5C-default.png
.png