توابع Null (Null Functions)
گاهی مقدار «NULL» یعنی «نامشخص» است. در جمع و ضرب، NULL همه چیز را نامشخص می کند. اینجا با «IFNULL()» و «COALESCE()» مشکل را حل می کنیم. مثل کارنامه ناقص؛ جای خالی را موقتاً صفر می گذاریم.
مشکل NULL در محاسبات
اگر یکی از مقادیر NULL باشد، نتیجه ضرب و جمع NULL می شود.
SELECT
ProductName,
UnitPrice * (UnitsInStock + UnitsOnOrder)
FROM Products;
تابع IFNULL()
«IFNULL(expr, alt)» اگر expr برابر NULL بود، مقدار «alt» را می دهد.
SELECT
ProductName,
UnitPrice * (UnitsInStock + IFNULL(UnitsOnOrder, 0))
FROM Products;
تابع COALESCE()
«COALESCE(v1, v2, ...)» اولین مقدار غیر NULL را برمی گرداند. انعطاف پذیرتر است.
SELECT
ProductName,
UnitPrice * (UnitsInStock + COALESCE(UnitsOnOrder, 0))
FROM Products;
گام های عملی
- ستون های احتمالیِ NULL را پیدا کن.
- برای هر ستون، مقدار پیش فرض بساز.
- از IFNULL یا COALESCE در محاسبات استفاده کن.
- نتیجه را بررسی و با NULL مقایسه کن.
- مقادیر پیش فرض را مستند کن.
نکته: COALESCE چند ورودی می گیرد؛ برای زنجیره جایگزین ها عالی است.
لینک های داخلی مفید
- CASE (CASE) برای ساخت مقدار متنی از شرایط.
- INSERT SELECT برای ساخت سریع داده آزمایشی.
جمع بندی سریع
- NULL یعنی «نامشخص»؛ محاسبات را NULL می کند.
- IFNULL(expr, d) جای NULL را با d پر می کند.
- COALESCE اولیِ غیر NULL را برمی گرداند.
- در گزارش ها، پیش فرض ها را شفاف ثبت کن.