به جدول “محصولات” زیر نگاه کنید:
فرض کنید که ستون “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 دیدگاه