SQL Academy · पाठ

COALESCE और NULLIF

डिफ़ॉल्ट मान दें और शून्य से भाग देने से बचें।

पाठ 3, कुल 4 में से13 चरण

COALESCE और NULLIF, CoddyKit पर SQL Academy का एक निःशुल्क पाठ है। यह 4 में से 3वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह SQL Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। SQL Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

अनुपस्थित मानों को बदलना

NULL का पता लगाना आधी प्रक्रिया है — अक्सर आप उन्हें किसी उपयुक्त डिफ़ॉल्ट मान से बदलना चाहते हैं। SQL का COALESCE फ़ंक्शन ठीक यही करता है।

और जब आप जान-बूझकर NULL बनाना चाहते हैं, जैसे शून्य से भाग देने से बचने के लिए, तब NULLIF उपयोगी होता है। यह पाठ दोनों के बारे में है।

-- Show a placeholder when phone is missing
SELECT name, COALESCE(phone, 'no phone on file') AS phone
FROM customers;

COALESCE कैसे काम करता है

COALESCE कितने भी तर्क ले सकता है और बाएँ से दाएँ पहला गैर-NULL मान लौटाता है।

यदि हर तर्क NULL है, तो परिणाम NULL होता है। इसे ऐसे समझिए: "इसे उपयोग करें, या उसे, या अंत में इस वैकल्पिक मान को उपयोग करें"।

SELECT
  COALESCE(NULL, NULL, 'third', 'fourth') AS a, -- 'third'
  COALESCE(NULL, 42)                       AS b, -- 42
  COALESCE(NULL, NULL)                     AS c; -- NULL

वैकल्पिक मानों की श्रृंखला

क्योंकि COALESCE कई तर्क स्वीकार करता है, आप प्राथमिकताओं की एक श्रृंखला बना सकते हैं।

उदाहरण के लिए, पहले मोबाइल नंबर, फिर कार्यस्थल का नंबर, फिर घर का नंबर और अंत में एक निश्चित संदेश चुनें।

SELECT name,
  COALESCE(mobile, work_phone, home_phone, 'unreachable') AS best_contact
FROM contacts;

गणनाओं में डिफ़ॉल्ट मान

NULL गणितीय क्रियाओं में आगे फैलता है, इसलिए एक अकेला अनुपस्थित मान पूरी गणना का परिणाम NULL कर सकता है। NULL हो सकने वाले इनपुट को COALESCE में लपेटकर उसकी जगह एक तटस्थ मान रखें।

यहाँ अनुपस्थित छूट को 0 माना गया है।

-- Without COALESCE, a NULL discount makes total NULL
SELECT
  price - COALESCE(discount, 0) AS total
FROM line_items;

COALESCE के प्रकार संबंधी नियम

COALESCE के सभी तर्कों का प्रकार परस्पर संगत होना चाहिए। PostgreSQL एक सामान्य प्रकार चुनता है और ऐसा न कर पाने पर त्रुटि देता है।

उदाहरण के लिए, आप प्रकार-रूपांतरण किए बिना किसी संख्या और मुक्त-पाठ वाली स्ट्रिंग को नहीं मिला सकते — वैकल्पिक मान भी संख्या होना चाहिए।

-- OK: both integers
SELECT COALESCE(score, 0) FROM results;

-- Cast when mixing types
SELECT COALESCE(score::text, 'n/a') FROM results;

NULLIF से परिचय

NULLIF(a, b) भावार्थ में COALESCE के उलट काम करता है: जब a = b हो, तो यह NULL लौटाता है; अन्यथा a लौटाता है।

यह किसी विशेष "संकेतक" मान को वास्तविक NULL में बदलने का संक्षिप्त तरीका है।

SELECT
  NULLIF(5, 5)   AS a,  -- NULL (equal)
  NULLIF(5, 9)   AS b,  -- 5    (not equal)
  NULLIF('', '') AS c;  -- NULL (treat empty string as missing)

शून्य से भाग देने के लिए NULLIF

NULLIF का सामान्य उपयोग भाग देने की त्रुटियों से बचना है। 0 से भाग देने पर त्रुटि आती है, लेकिन NULL से भाग देने पर केवल NULL प्राप्त होता है।

भाजक को NULLIF(divisor, 0) में लपेटकर विफलता को सुरक्षित NULL में बदलें।

-- If total_visits is 0, this would error.
-- NULLIF turns the divisor into NULL, giving a NULL ratio instead.
SELECT
  conversions / NULLIF(total_visits, 0) AS conversion_rate
FROM campaigns;

NULLIF और COALESCE को साथ उपयोग करना

NULLIF और COALESCE एक-दूसरे के साथ अच्छी तरह काम करते हैं। किसी संकेतक को NULL में बदलने के लिए NULLIF का उपयोग करें, फिर उस NULL को उपयोगी डिफ़ॉल्ट मान देने के लिए COALESCE का उपयोग करें।

यहाँ रिक्त-स्ट्रिंग वाली टिप्पणी शाब्दिक पाठ "—" में बदल जाती है।

-- Treat '' as missing, then display a dash
SELECT
  COALESCE(NULLIF(note, ''), '—') AS display_note
FROM tickets;

सुरक्षित औसत अनुपात

इसे एक विश्वसनीय विश्लेषणात्मक क्वेरी में साथ उपयोग करें: NULLIF से शून्य से भाग देने से बचें, फिर COALESCE से NULL की जगह 0 दिखाएँ।

क्वेरी में कभी त्रुटि नहीं आएगी और हमेशा एक साफ़ संख्या दिखाई देगी।

SELECT
  product_id,
  COALESCE(returns / NULLIF(orders, 0), 0) AS return_rate
FROM product_stats;

COALESCE बनाम IS NULL

दोनों NULL से संबंधित हैं, लेकिन इनके उद्देश्य अलग हैं:

  • IS NULL / IS NOT NULL — किसी शर्त में अनुपस्थित मानों की जाँच करने के लिए।
  • COALESCE — परिणाम में किसी मान का विकल्प देने के लिए।

परिणाम का रूप तय करते समय COALESCE का उपयोग करें और फ़िल्टर लगाने के लिए IS NULL का।

-- Filter (IS NULL)
SELECT * FROM customers WHERE phone IS NULL;

-- Substitute (COALESCE)
SELECT COALESCE(phone, 'unknown') FROM customers;

सबको एक साथ समझना

इस पाठ के लिए एक संक्षिप्त संदर्भ:

  • COALESCE(a, b, c) → पहला गैर-NULL मान।
  • NULLIF(a, b) → बराबर होने पर NULL, अन्यथा a।
  • शून्य से भाग देने से बचने के लिए NULLIF(divisor, 0) का उपयोग करें।
  • गणनाओं और परिणामों में डिफ़ॉल्ट मान देने के लिए COALESCE का उपयोग करें।
SELECT
  COALESCE(nickname, full_name, 'guest')       AS display_name,
  revenue / NULLIF(orders, 0)                  AS avg_order_value
FROM accounts;

त्वरित जाँच

जब amount का मान 0 हो, तब NULLIF(amount, 0) क्या लौटाता है?

पुनरावलोकन

अब आप COALESCE से NULL को डिफ़ॉल्ट मानों से बदल सकते हैं (पहला गैर-NULL मान चुना जाता है) और NULLIF से जान-बूझकर NULL बना सकते हैं (दो मान समान होने पर NULL मिलता है)।

आपने शून्य से भाग देने से बचने का तरीका और सुरक्षित, साफ़ परिणाम के लिए दोनों फ़ंक्शनों को साथ उपयोग करना भी देखा। अब आप जानेंगे कि COUNT, SUM और JOIN में NULL कैसे व्यवहार करते हैं।

SELECT
  COALESCE(NULLIF(comment, ''), 'no comment') AS comment,
  total / NULLIF(qty, 0)                       AS unit_price
FROM invoices;
शुरुआत निःशुल्क

एआई शिक्षक के साथ SQL सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
46
पाठ
183

अक्सर पूछे जाने वाले प्रश्न

क्या “COALESCE और NULLIF” पाठ निःशुल्क है?

हाँ—“COALESCE और NULLIF” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और SQL Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। SQL Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“COALESCE और NULLIF” में मैं क्या सीखूँगा?

डिफ़ॉल्ट मान दें और शून्य से भाग देने से बचें। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ SQL Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या SQL Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर SQL Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 3वाँ पाठ है।

“COALESCE और NULLIF” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस SQL Academy पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर SQL Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. NULL का वास्तविक अर्थ
  2. IS NULL और IS NOT NULL
  3. COALESCE और NULLIF
  4. एग्रीगेट और JOIN में NULL
← SQL Academy पर वापस जाएँ