٪۴۰ تخفیف تابستانه شروع شد! بزرگترین حراج سال ما

به ما بپیوندید

آموزش توابع SQL IFNULL () ، ISNULL () ، COALESCE () ، و NVL ()

به جدول “محصولات” زیر نگاه کنید: فرض کنید که ستون “UnitsOnOrder” اختیاری است و ممکن است حاوی مقادیر NULL باشد. به عبارت SELECT زیر نگاه کنید: SELECT ProductName, UnitPrice * (UnitsInStock + UnitsOnOrder) FROM Products; در مثال بالا ، اگر…

محمد یوسفی

19 آگوست 2021

به جدول “محصولات” زیر نگاه کنید:

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

به عبارت SELECT زیر نگاه کنید:

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

در مثال بالا ، اگر هر یک از مقادیر “UnitsOnOrder” NULL باشد ، نتیجه NULL خواهد بود.


راه حل ها

MySQL

IFNULL()اگر یک عبارت NULL باشد ، تابع MySQL به شما امکان می دهد یک مقدار جایگزین بازگردانید:

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

یا می توانیم از تابع استفاده کنیم ، مانند این: COALESCE()

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

SQL Server

ISNULL()تابع SQL Server به شما این امکان را می دهد که وقتی یک عبارت NULL است مقدار جایگزینی را برگردانید:

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

MS Access

IsNull()تابع MS Access TRUE (-1) را برمی گرداند اگر عبارت یک مقدار تهی باشد ، در غیر این صورت FALSE (0):

SELECT ProductName, UnitPrice * (UnitsInStock + IIF(IsNull(UnitsOnOrder), 0, UnitsOnOrder))
FROM Products;

اوراکل

NVL()عملکرد Oracle به همان نتیجه می رسد:

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

منبع

مطالب مرتبط

0 دیدگاه