دستور Switch در Dax:
با استفاده از دستور switch می توانیم یک سری شرط را تعریف و براساس شرط ها مقادیر متفاوت را برگردانیم.
Switch در زبان Dax معادل دستور Case در زبان SQL می باشد.
برای مثال فرض کنید یک جدول بنام Grade داریم که شامل ستونهای Name، Weighted Grade است. میخواهیم بر اساس محدودههای نمرهای، امتیاز نهایی دانشجو را محاسبه نماییم. برای این منظور، میتوان از switch در DAX استفاده کنیم:
اگر جمع نمرات وزندار شده برابر یا بیشتر از 90 باشد، امتیاز نهایی برابر 4 خواهد بود و در صورتی که جمع نمرات وزندار شده بین 80 تا 89.99 باشد، امتیاز نهایی برابر 3 خواهد بود و به همین ترتیب برای دو محدوده دیگر نیز امتیاز نهایی محاسبه میشود. اگر هیچ یک از شرایط بالا برقرار نباشد، امتیاز نهایی برابر صفر خواهد بود.
توجه داشته باشید که آرگومان اول تابع SWITCH برابر TRUE است، به این معنی که تابع تمام شرایط را بررسی میکند تا یک شرط را برآورد کند. بعد از برآورد شرط، مقدار متناظر با آن شرط برگردانده و تابع متوقف میشود.
مقایسه توابع IF و SWITCH
در مقایسه تابع IF و SWITCH در زبان DAX باید گفت، استفاده از SWITCH، خوانایی کد را بسیار بالا می برد. استفاده از IF های تو در تو خواندن کد و عیب یابی آن را سخت می کند. البته SWITCH هیچ برتری از حیث عملکرد بر IF ندارد. هنگامی که از SWITCH استفاده می کنید در پشت پرده شروط شما به IF های تو در تو تبدیل می شود. می توان گفت SWITCH، ساده شده IF های تو در تو است.
ضمنا همان طور که گفته شد از SWITCH معمولا برای ستون هایی استفاده می شود که مقادیر یکتای زیادی نداشته باشند و گسسته باشند، مانند رنگ، ماه، سطح تحصیلی و ….