SQL NULL செயல்பாடுகள்
பின்வரும் "Products" அட்டவணையைப் பாருங்கள்:
| P_Id | ProductName | UnitPrice | UnitsInStock | UnitsOnOrder |
|---|---|---|---|---|
| 1 | Jarlsberg | 10.45 | 16 | 15 |
| 2 | Mascarpone | 32.56 | 23 | NULL |
| 3 | Gorgonzola | 15.67 | 9 | 20 |
"UnitsOnOrder" நெடுவரிசை விருப்பமானது என்றும், NULL மதிப்புகளைக் கொண்டிருக்கலாம் என்றும் வைத்துக்கொள்வோம்.
பின்வரும் SELECT அறிக்கையைப் பாருங்கள்:
SELECT ProductName, UnitPrice * (UnitsInStock + UnitsOnOrder)
FROM Products;
மேலே உள்ள எடுத்துக்காட்டில், "UnitsOnOrder" மதிப்புகள் ஏதேனும் NULL ஆக இருந்தால், முடிவு NULL ஆக இருக்கும்.
தீர்வுகள்
MySQL
MySQL IFNULL() செயல்பாடு ஒரு வெளிப்பாடு NULL ஆக இருந்தால் மாற்று மதிப்பைத் திருப்பித் தரும்:
SELECT ProductName, UnitPrice *
(UnitsInStock + IFNULL(UnitsOnOrder, 0))
FROM Products;
அல்லது COALESCE() செயல்பாட்டைப் பயன்படுத்தலாம்:
SELECT ProductName, UnitPrice *
(UnitsInStock + COALESCE(UnitsOnOrder, 0))
FROM Products;
SQL Server
SQL Server ISNULL() செயல்பாடு ஒரு வெளிப்பாடு NULL ஆக இருந்தால் மாற்று மதிப்பைத் திருப்பித் தரும்:
SELECT ProductName, UnitPrice *
(UnitsInStock + ISNULL(UnitsOnOrder, 0))
FROM Products;
அல்லது COALESCE() செயல்பாட்டைப் பயன்படுத்தலாம்:
SELECT ProductName, UnitPrice *
(UnitsInStock + COALESCE(UnitsOnOrder, 0))
FROM Products;
MS Access
MS Access IsNull() செயல்பாடு வெளிப்பாடு NULL மதிப்பாக இருந்தால் TRUE (-1) திருப்பித் தரும், இல்லையெனில் FALSE (0):
SELECT ProductName, UnitPrice *
(UnitsInStock + IIF(IsNull(UnitsOnOrder), 0, UnitsOnOrder))
FROM Products;
Oracle
Oracle NVL() செயல்பாடு அதே முடிவை அடைகிறது:
SELECT ProductName, UnitPrice *
(UnitsInStock + NVL(UnitsOnOrder, 0))
FROM Products;
அல்லது COALESCE() செயல்பாட்டைப் பயன்படுத்தலாம்:
SELECT ProductName, UnitPrice *
(UnitsInStock + COALESCE(UnitsOnOrder, 0))
FROM Products;
செயல்பாட்டு ஒப்பீடு
IFNULL()
தரவுத்தளம்: MySQL
பயன்: முதல் வாதம் NULL ஆக இருந்தால் இரண்டாவது வாதத்தைத் திருப்பித் தரும்
IFNULL(expression, alternative)
ISNULL()
தரவுத்தளம்: SQL Server
பயன்: வெளிப்பாடு NULL ஆக இருந்தால் குறிப்பிட்ட மதிப்பைத் திருப்பித் தரும்
ISNULL(expression, replacement)
NVL()
தரவுத்தளம்: Oracle
பயன்: முதல் வாதம் NULL ஆக இருந்தால் இரண்டாவது வாதத்தைத் திருப்பித் தரும்
NVL(expression, default_value)
COALESCE()
தரவுத்தளம்: அனைத்து முக்கிய தரவுத்தளங்களும்
பயன்: பட்டியலில் முதல் NULL அல்லாத மதிப்பைத் திருப்பித் தரும்
COALESCE(val1, val2, val3, ...)
உதவிக்குறிப்பு:
COALESCE() செயல்பாடு அனைத்து முக்கிய தரவுத்தளங்களிலும் கிடைக்கும் மற்றும் பல மாற்று மதிப்புகளைக் கையாள முடியும் என்பதால் இது மிகவும் பரவலாகப் பயன்படுத்தப்படுகிறது.
நடைமுறை எடுத்துக்காட்டுகள்
கணிதக் கணக்கீடுகள்
NULL மதிப்புகளைக் கொண்ட கணிதச் செயல்பாடுகள்
-- NULL ஐ 0 ஆக மாற்றுதல்
SELECT ProductName,
Price * ISNULL(Quantity, 0) AS Total
FROM Products;
வாடிக்கையாளர் தரவு
காலி தொடர்புத் தகவல்களைக் கையாளுதல்
-- தொலைபேசி இல்லாத வாடிக்கையாளர்களுக்கு
-- 'No Phone' காட்டுதல்
SELECT CustomerName,
COALESCE(Phone, 'No Phone') AS Contact
FROM Customers;
அறிக்கை உருவாக்கம்
அறிக்கைகளில் NULL மதிப்புகளை மாற்றீடு செய்தல்
-- விற்பனைத் தரவுகளில் NULL ஐ
-- 'Not Available' ஆகக் காட்டுதல்
SELECT ProductName,
COALESCE(SalesData, 'Not Available') AS Sales
FROM Reports;