سبد (0)

تابع isnull در SQL

توابع ISNULL و NVL و IFNULL و COALESCE  

Wiki

به جدول Products در زیر توجه فرمایید:

P_IdProductNameUnitPriceUnitsInStockUnitsOnOrder
1 Jarlsberg 10.45 16 15
2 Mascarpone 32.56 23  
3 Gorgonzola 15.67 9 20

فرض کنید که وارد کردن مقدار ستون UnitsOnOrder اختیاری باشد و ممکن است حاوی مقدار NULL باشد.

دستور SELECT زیر را داریم:

SELECT ProductName,UnitPrice*(UnitsInStock+UnitsOnOrder)
FROM Products

در مثال فوق، اگر هر یک از مقادیر ستون UnitsOnOrder حاوی NULL باشند نتیجه آن NULL خواهد بود.

از تابع ISNULL استفاده می شود تا مشخص کنیم چگونه می خواهیم با مقدار NULL رفتار کنیم.

توابع NVL و IFNULL و COALESCE نیز می توانند برای رسیدن به نتیجه ای مشابه استفاده شوند.

در این مورد می خواهیم تا مقدار NULL صفر در نظر گرفته شود.

در زیر، اگر UnitsOnOrder مقدار NULL داشت، دیگر مشکلی برای محاسبه وجود ندارد، زیرا تابع ISNULL آن را به صفر بر می گرداند.

SQL Server / MS Access

SELECT ProductName,UnitPrice*(UnitsInStock+ISNULL(UnitsOnOrder,0))
FROM Products

Oracle

در Oracle تابع ISNULL وجود ندارد. اما می توانیم از تابع NVL برای رسیدن به نتیجه ای مشابه استفاده کنیم:

SELECT ProductName,UnitPrice*(UnitsInStock+NVL(UnitsOnOrder,0))
FROM Products

MySQL

در MySQL تابع ISNULL وجود دارد. اما عملکرد آن کمی با تابع ISNULL در ماکروسافت (ACCESS,SQL SERVER) متفاوت است.

در MySQL از تابع IFNULL برای این امر استفاده می کنیم:

SELECT ProductName,UnitPrice*(UnitsInStock+IFNULL(UnitsOnOrder,0))
FROM Products

از تابع COALESCE می توانیم به شکل زیر استفاده کنیم:

SELECT ProductName,UnitPrice*(UnitsInStock+COALESCE(UnitsOnOrder,0))
FROM Products

آموزش صوتی SQL

ابزاری که در پیش روی دارید یکی از ابزارهای بسیار کاربردی سایت بیاموز در زمینه آموزش است، این ابزار برای سهولت یادگیری شما کاربران محترم طراحی شده است.

فقط کافی است روی عنوان پاراگراف مورد نظرتان کلیک کنید تا پخش صدا آغاز شود ...!

تمامی محصولات و خدمات این وبسایت، حسب مورد دارای مجوزهای لازم از مراجع مربوطه می‌باشند و فعالیت‌های این سایت تابع قوانین و مقررات جمهوری اسلامی ایران است.
logo-samandehi مجوز نشر دیجیتال از وزرات فرهنگ و ارشاد اسلامی پرداخت آنلاین -  بانک ملت معرفی بیاموز در شبکه سه