يه مطلب كوچك و جالب از به كارگيري دستورات داخلي SQL امروز به ذهنم رسيد ديدم بد نيست بگم. در طراحي جدول ها هميشه اين اصول را رعايت كنيد :
1)تمامي فيلدها را Not Null كنيد.
2)براي تمامي فيلدها مقدار پيش فرض تعيين كنيد.
خوب با اين كار خيلي از مسائل و مشكلات مربوط به Null حل مي شه. اما يه مشكل جديد پيش مياد!!!!! اونم اين كه اگه جايي بخواهيد از فيلدهايي كه وارد شده آمار بگيريد، به مشكل برمي خوريد.مثلاً در يك جدول شما اطلاعات مشتريان خود را نگه مي داريد و مي خواهيد بفهميد كه ميانگين سن مشتريان شما چقدر است. از اونجا كه شما براي همه فيلدها مقدار پيش فرض تعيين كرده ايد بنابراين همه ركوردها داراي مقدار هستند، هر كس اين فيلد را وارد نكرده باشد، مقدار مثلاً صفر(صفر مقدار پيش فرض است) در فيلد ثبت شده است. و در نتيجه ميانگين سن اشتباه به دست مي آيد. بايد به وسيله اي مقادير صفر را حذف كنيم.
راه حل استفاده از تابع توكار ( NULLIF ( expression1 , expression2 مي باشد.اين تابع، مقدار دلخواه شما رو با NULL عوض مي كنه. expression1 نام فيلد يا تابع يا ... است كه مي خواهيد از لحاظ مقدار چك شود و expression2 مقدار مورد نظر (مقدار پيش فرض فيلد) است. مثلاً در مثال فوق((Avg( NULLIF([Age],0 مقادير صفر را با Nullعوض مي كند در نتيجه در تابع AVG حساب نمي شوند.
يك تابع هم داريم كه عكس اين تابع عمل مي كنه اونم ( ISNULL ( expression1 , expression2 .اين تابع مفادير Null را به مقدار دلخواه شما تغيير مي ده. expression1 نام فيلد يا تابع يا ... است كه مي خواهيد از لحاظ مقدار چك شود و expression2 مقداري است مي خواهيد با Null جايگزين بشه.