توابع NULL SQL

SQL ISNULL()، NVL()، IFNULL() اور COALESCE() فنکشن

مندرجہ ذیل "Products" جدول دیکھئے:

P_Id ProductName UnitPrice UnitsInStock UnitsOnOrder
1 کمپیوٹر 699 25 15
2 پرنٹر 365 36  
3 تلفون 280 159 57

اگر "UnitsOnOrder" اختیاری ہو اور NULL کی قیمت شامل ہو سکتی ہے تو

ہم مندرجہ ذیل SELECT جملہ استعمال کرتے ہیں:

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

اُپر کے مثال میں، اگر "UnitsOnOrder" کا مقصد NULL ہو تو نتیجہ NULL ہوگا۔

مائیکروسافٹ کا ISNULL() فنکشن NULL کا مقصد کو طے کرنے کے لئے استعمال کیا جاتا ہے۔

NVL(), IFNULL() اور COALESCE() فنکشن بھی ایسی طرح کا نتیجہ حاصل کرسکتے ہیں۔

یہاں، ہم چاہتے ہیں کہ NULL کا مقصد 0 ہو۔

اب اگر "UnitsOnOrder" NULL ہو تو اس میں کوئی فائدہ نہیں ہوتا، لہذا اگر کوئی NULL ہو تو ISNULL() 0 واپس دیتا ہے۔

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() فنکشن بہت الگ ہوتا ہے۔

MySQL میں، ہم IFNULL() فنکشن کا استعمال کرسکتے ہیں، جیسا کہ یہ:

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

یا انھوں نے COALESCE() فنکشن کا استعمال کرسکتے ہیں، جیسا کہ یہ:

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