SQLite में, यदि आपको NULL परिणामों को "N/A", "कोई नहीं", या यहां तक कि "NULL" जैसे टेक्स्ट से बदलने की आवश्यकता है, तो आप नीचे दिए गए तीन समाधानों में से एक का उपयोग कर सकते हैं।
नमूना डेटा
सबसे पहले, यहां एक क्वेरी का उदाहरण दिया गया है जो कुछ NULL मान लौटाती है।
SELECT
CustomerId,
Fax
FROM Customer
LIMIT 5;
परिणाम:
CustomerId Fax ---------- ------------- 1 +55 (12) 3923 2 3 4 5 +420 2 4172 5
ध्यान दें कि पंक्ति 2, 3 और 4 में फ़ैक्स . में NULL मान हैं कॉलम।
हम परिणाम बदलने के लिए नीचे दी गई विधियों का उपयोग कर सकते हैं ताकि NULL कॉलम "N/A" प्रदर्शित करें।
ifnull() फ़ंक्शन
ifnull()
फ़ंक्शन दो तर्क स्वीकार करता है, और पहला तर्क देता है जो NULL नहीं है। यदि दोनों तर्क NULL हैं, तो यह NULL देता है।
तो, पहला तर्क वह मान होना चाहिए जो अशक्त हो या न हो, और दूसरा तर्क वह मान होना चाहिए जिसे आप किसी भी NULL मान से बदलना चाहते हैं।
यहां बताया गया है कि हम फ़ैक्स . जहां कहीं भी "लागू नहीं" प्रदर्शित करने के लिए पिछली क्वेरी को संशोधित कर सकते हैं कॉलम न्यूल है।
SELECT
CustomerId,
ifnull(Fax, 'N/A') AS Fax
FROM Customer
LIMIT 5;
परिणाम:
CustomerId Fax ---------- ------------- 1 +55 (12) 3923 2 N/A 3 N/A 4 N/A 5 +420 2 4172 5
द कोलेस () फंक्शन
coalesce()
फ़ंक्शन ifnull()
. से बहुत मिलता-जुलता है समारोह। अंतर यह है कि coalesce()
दो से अधिक तर्कों को स्वीकार करता है। यह केवल पहला गैर-नल तर्क देता है।
इसलिए, हम इसका ठीक उसी तरह उपयोग कर सकते हैं जैसे हम ifnull()
. का उपयोग करते हैं दो तर्क देकर।
SELECT
CustomerId,
coalesce(Fax, 'N/A') AS Fax
FROM Customer
LIMIT 5;
परिणाम:
CustomerId Fax ---------- ------------- 1 +55 (12) 3923 2 N/A 3 N/A 4 N/A 5 +420 2 4172 5
.nullvalue डॉट कमांड
SQLite कमांड लाइन इंटरफ़ेस का उपयोग करते समय, आप .nullvalue
. का उपयोग कर सकते हैं हर बार जब आप कोई प्रश्न करते हैं तो पिछले कार्यों में से किसी एक का उपयोग करने से खुद को बचाने के लिए डॉट कमांड।
इस कमांड का उपयोग करते समय, आप एक स्ट्रिंग प्रदान करते हैं जिसका उपयोग NULL मानों को बदलने के लिए किया जाएगा।
उदाहरण:
.nullvalue N/A
अब, जब भी आप कोई क्वेरी चलाते हैं जो NULL मान लौटाती है, तो स्ट्रिंग "N/A" उन NULL मानों को बदल देगी।
SELECT
CustomerId,
Fax
FROM Customer
LIMIT 5;
परिणाम:
CustomerId Fax ---------- ------------- 1 +55 (12) 3923 2 N/A 3 N/A 4 N/A 5 +420 2 4172 5