NULLIF (NULLIF)
تابع NULLIF (NULLIF Function) دو عبارت را مقایسه می کند. اگر برابر باشند، مقدار NULL می دهد. اگر برابر نباشند، همان «عبارت اول» را برمی گرداند. «عبارت (Expression)» یعنی هر چیز قابل محاسبه مثل عدد یا رشته.
تعریف و کاربرد تابع NULLIF
با NULLIF شرط می گذاریم: «اگر دو چیز یکی بود، خالی برگردان». این خالی همان NULL است. در مدرسه مثل وقتی دو برگه جواب یکی است، معلم می گوید نتیجه خاصی ندارد.
سینتکس (Syntax)
NULLIF(<expr1>, <expr2>);
نکته: هر دو پارامتر اجباری هستند. نوعشان باید قابل مقایسه باشد.
مثال های سریع از تابع NULLIF
اعداد برابر
SELECT NULLIF(25, 25);
اینجا دو عدد یکی هستند. پس نتیجه NULL است.
رشته های برابر
SELECT NULLIF('Hello', 'Hello');
دو رشته یکی هستند. بنابراین خروجی NULL می شود.
رشته های نابرابر
SELECT NULLIF('Hello', 'world');
چون برابر نیستند، همان 'Hello' برمی گردد.
تاریخ های برابر
SELECT NULLIF('2017-08-25', '2017-08-25');
دو تاریخ یکی هستند. پس نتیجه NULL می شود.
کاربرد عملی در کوئری ها
گاهی برای جلوگیری از خطای تقسیم بر صفر، NULLIF کمک می کند. اگر مخرج صفر بود، NULL می دهد و کوئری خطا نمی دهد.
SELECT total_points / NULLIF(attempts, 0) AS avg_points
FROM Scores;
هشدار: اگر نتیجه NULL شد، میانگین نمایش نمی شود. می توانید بعداً با COALESCE مقدار جایگزین بدهید.
نکات رایج خطا
- نوع ها باید قابل مقایسه باشند. مثل عدد با عدد.
- NULLIF فقط برابری را می سنجد. بزرگ تر یا کوچک تر نه.
- خروجی ممکن است NULL باشد. در گزارش ها برنامه ریزی کنید.
جمع بندی سریع
- تابع NULLIF برای «اگر برابر بودند، NULL» است.
- نابرابری یعنی بازگشت «عبارت اول».
- در تقسیم بر صفر بسیار کاربردی است.
- نتیجه ممکن است NULL باشد؛ COALESCE مفید است.