Free tutorials & notes in Hindi & English · Clean code examples 🧰 मुफ़्त PDF और फ़ोटो टूल्स →
MySQL + SQL · Lesson 55

MySQL में CASE Expression

CASE क्या है

CASE expression query के अंदर if-else logic जोड़ता है। यह conditions क्रम में जाँचता है और पहले true वाले को value लौटाता है, वरना default। यह कच्चे data को अर्थपूर्ण labels में बदलने को बढ़िया है — जैसे marks को grades में बदलना — SELECT में ही।

💡 CASE SQL को if-else जैसा है: conditions के आधार पर value चुनिए, प्रति row गणना।

CASE syntax

CASE
    WHEN condition1 THEN value1
    WHEN condition2 THEN value2
    ELSE default_value
END

हर WHEN ऊपर से नीचे जाँचा जाता है; पहला true वाला अपनी value देता है। कोई मेल न खाए तो ELSE इस्तेमाल होता है। आप इसे आमतौर पर SELECT list में column का नाम देने को AS के साथ रखते हैं।

उदाहरण: grades assign

SELECT name, marks,
    CASE
        WHEN marks >= 90 THEN 'A'
        WHEN marks >= 75 THEN 'B'
        WHEN marks >= 40 THEN 'C'
        ELSE 'Fail'
    END AS grade
FROM students;
+------+-------+-------+ | name | marks | grade | +------+-------+-------+ | Aman | 88 | B | | Diya | 95 | A | | Ravi | 30 | Fail | +------+-------+-------+

हर student के marks CASE द्वारा grade में बदले जाते हैं, store data बदले बिना।

Data categorise करना

SELECT name, salary,
    CASE
        WHEN salary >= 50000 THEN 'High'
        WHEN salary >= 25000 THEN 'Medium'
        ELSE 'Low'
    END AS pay_band
FROM employees;

CASE निरंतर values को नाम वाले bands में समूहबद्ध करने को बढ़िया है — salary को High/Medium/Low, age को ranges में, वग़ैरह।

ORDER BY में CASE

SELECT name, status
FROM orders
ORDER BY
    CASE status
        WHEN 'urgent' THEN 1
        WHEN 'normal' THEN 2
        ELSE 3
    END;

यहाँ CASE हर status को sort rank देता है, तो urgent orders पहले आते हैं, फिर normal, फिर बाक़ी — एक custom order जो सादे ASC/DESC से नहीं मिलता।

Simple CASE रूप

SELECT name,
    CASE grade
        WHEN 'A' THEN 'Excellent'
        WHEN 'B' THEN 'Good'
        ELSE 'Average'
    END AS remark
FROM students;

Simple CASE एक column को values से तुलना करता है। जब आप एक column को fixed values से जाँच रहे हों, पूरी conditions लिखने के बजाय, यह छोटा है।

आम गलतियाँ

  • END भूलना। हर CASE END से ख़त्म होना चाहिए।
  • गलत condition क्रम। सख़्त conditions पहले रखिए, वरना ढीली सब पकड़ लेती है।
  • ELSE छूटना। इसके बिना, बेमेल rows NULL लौटाती हैं।
  • CASE के data बदलने की उम्मीद। यह सिर्फ़ query result प्रभावित करता है।

सारांश

  • CASE query के अंदर if-else logic जोड़ता है।
  • Syntax: CASE WHEN ... THEN ... ELSE ... END।
  • Conditions क्रम में जाँची जाती हैं; पहली true जीतती है।
  • इसे grades, categories, और custom ORDER BY को इस्तेमाल कीजिए।
  • यह display को values गणना करता है, store बदलाव नहीं।

आगे, nulls संभालिए IFNULL और COALESCE से, या report बनाइए report card query में।

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

MySQL में CASE expression क्या है?
CASE expression SQL query के अंदर if-else logic जोड़ता है। यह conditions क्रम में जाँचता है और पहले true वाले को value लौटाता है, वरना default। यह computed columns बनाने को इस्तेमाल होता है, जैसे marks को grades में बदलना।
CASE expression कैसे लिखूँ?
CASE WHEN condition THEN value ... ELSE default END इस्तेमाल कीजिए। हर WHEN क्रम में जाँचा जाता है; पहला true वाला अपनी value देता है। इसे SELECT list में डालिए, अक्सर नए column का नाम देने को AS के साथ।
Simple और searched CASE में क्या अंतर है?
Searched CASE हर WHEN में पूरी conditions जाँचता है (जैसे WHEN marks >= 90)। Simple CASE एक expression को values से तुलना करता है (जैसे CASE grade WHEN 'A' THEN ...)। Searched CASE ज़्यादा लचीला है।
क्या CASE को ORDER BY में इस्तेमाल कर सकता हूँ?
हाँ। ORDER BY में CASE expression डालना आपको custom logic से sort करने देता है, जैसे चुना status पहले दिखाना, फिर बाक़ी। यह आपको सरल ascending या descending से आगे sort order पर पूरा नियंत्रण देता है।
क्या CASE table का data बदलता है?
नहीं। CASE सिर्फ़ query के result को प्रभावित करता है; यह store data बदलता नहीं। यह query time पर display या sorting को value गणना करता है, underlying table अपरिवर्तित छोड़कर।
🔗

Share this topic with a friend

यह topic किसी दोस्त को भेजें

Found it useful? Send it to a classmate learning the same thing.

अच्छा लगा? जो दोस्त यही सीख रहा है, उसे भेज दीजिए।

💻 लाइव कोड एडिटर

इस पेज के प्रोग्राम यहीं तैयार हैं — चलाएँ, बदलें और सीखें। कुछ भी इंस्टॉल किए बिना।
OneCompiler द्वारा संचालित। कोड एडिटर में अपने आप आ जाता है — Run दबाकर आउटपुट देखें। अगर एडिटर न खुले तो नए टैब में खोलें.
अगला topicMySQL में Aggregate Functions आपकी प्रगति: 55 / 151 (36%) · Lesson 56 / 151 आगे बढ़ें →

यह lesson कैसा लगा?

आपकी राय से हम content और बेहतर बनाते हैं।

अपना review और सुझाव लिखें (वैकल्पिक)

Review approve होने के बाद आपका नाम और शहर इसके साथ public दिख सकते हैं। Email या phone न लिखें।

▶ CodingEasily on YouTube

Video से सीखें – आसान Hindi में

चुनी हुई video: RDBMS भाग 3 – Class XI Commerce IT

▶ Channel subscribe करें