توابع NULL SQL
- پچھلے صفحے SQL Nulls
- آئندہ صفحہ نوع دادههای 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
- پچھلے صفحے SQL Nulls
- آئندہ صفحہ نوع دادههای SQL