सूचना

यह सहायता केंद्र, Cloud पर माइग्रेट किया जा रहा है. माइग्रेट करने के बारे में ज़्यादा जानें.

CASE (शर्तों का आकलन करने वाला)

शर्तों की सूची के आकलन के आधार पर कोई नतीजा दिखाता है.

CASE स्टेटमेंट, एक या उससे ज़्यादा शर्तों का आकलन करते हैं और पहली शर्त पूरी होने पर कोई नतीजा दिखाते हैं. अगर कोई भी शर्त पूरी नहीं होती, तो डिफ़ॉल्ट नतीजा दिखाते हैं.

ध्यान दें: CASE स्टेटमेंट, दो तरह के होते हैं: शर्तों का आकलन करने वाला CASE और आसान CASE. शर्तों का आकलन करने वाले CASE स्टेटमेंट की मदद से, बेहतर लॉजिक का इस्तेमाल किया जा सकता है. वहीं, आसान CASE स्टेटमेंट ज़्यादा आसानी से बनाए जा सकते हैं.

यह भी देखें: IF.

इस लेख में इन विषयों के बारे में बताया गया है:

इस्तेमाल के उदाहरण

CASE स्टेटमेंट का सामान्य तौर पर इस्तेमाल, नई कैटगरी या डेटा ग्रुप बनाने के लिए किया जाता है. उदाहरण के लिए, चुने गए देश की वैल्यू को किसी 'बिक्री क्षेत्र' डाइमेंशन में शामिल करने के लिए, इस तरह से CASE स्टेटमेंट बनाया जा सकता है:

CASE 
    WHEN Country IN ("USA","Canada","Mexico") THEN "North America" 
    WHEN Country IN ("England","France") THEN "Europe" 
    ELSE "Other" 
END

सिंटैक्स

CASE
    WHEN condition THEN result
    [WHEN condition THEN result]
    [...]
    [ELSE else_result]
END

पैरामीटर

  • condition - यह लॉजिकल फ़ील्ड या एक्सप्रेशन होता है. WHEN क्लॉज़, condition का आकलन करते हैं. अगर तय की गई कोई शर्त पूरी होती है, तो नतीजे के तौर पर 'सही' मिलता है. वहीं, अगर शर्त पूरी नहीं होती है, तो नतीजे के तौर पर 'गलत' मिलता है.

  • result - यह किसी भी तरह का फ़ील्ड या एक्सप्रेशन होता है. हर WHEN क्लॉज़ की शर्त में, मैच होने वाला THEN क्लॉज़ होना चाहिए, जिसकी वैल्यू WHEN condition के सही होने पर नतीजे के रूप में दिखे. अगर कई WHEN क्लॉज़ हैं, तो CASE स्टेटमेंट, उस condition के आधार पर result दिखाता है जो सबसे पहले सही मिलती है.

  • else_result (ज़रूरी नहीं) - यह किसी तरह का फ़ील्ड या एक्सप्रेशन होता है. ELSE else_result क्लॉज़, CASE स्टेटमेंट के लिए डिफ़ॉल्ट नतीजे दिखाता है. इसमें तय की गई वैल्यू को नतीजे के तौर पर तब दिखाया जाता है, जब कोई भी WHEN क्लॉज़ सही नहीं होता. अगर किसी CASE स्टेटमेंट में, कोई ELSE क्लॉज़ नहीं है और कोई WHEN क्लॉज़ भी सही नहीं है, तो CASE स्टेटमेंट NULL दिखाता है.

किसी CASE स्टेटमेंट में सिर्फ़ एक ELSE क्लॉज़ होता है.

ध्यान दें: किसी CASE स्टेटमेंट में मौजूद सभी THEN क्लॉज़ से मिलने वाला डेटा एक ही तरह का होना चाहिए. उदाहरण के लिए, अगर पहले THEN क्लॉज़ में डेटा टाइप के तौर पर टेक्स्ट है, तो अन्य THEN क्लॉज़ में भी डेटा टाइप के तौर पर टेक्स्ट होना चाहिए.

शर्तों का आकलन करने वाला CASE स्टेटमेंट कैसे काम करता है

शर्तों का आकलन करने वाला CASE स्टेटमेंट, CASE कीवर्ड से शुरू होता है और END कीवर्ड पर खत्म होता है. इन दोनों कीवर्ड के बीच, कई सेक्शन और क्लॉज़ बनाए जा सकते हैं:

  • WHEN: इस क्लॉज़ में वह शर्त तय की जाती है जिसका आपको आकलन करना है. किसी CASE स्टेटमेंट में, कई WHEN क्लॉज़ शामिल किए जा सकते हैं.
  • THEN: इस क्लॉज़ में वह नतीजा सेट किया जाता है जिसे WHEN क्लॉज़ के सही होने पर दिखना चाहिए. आपके CASE स्टेटमेंट में, हर WHEN क्लॉज़ के लिए एक THEN क्लॉज़ होना चाहिए.
  • ELSE: इस क्लॉज़ का इस्तेमाल करना ज़रूरी नहीं है. अगर WHEN क्लॉज़ की कोई भी शर्त सही नहीं होती है, तो CASE स्टेटमेंट, नतीजे के तौर पर ELSE क्लॉज़ की वैल्यू दिखाता है. वहीं, अगर ELSE क्लॉज़ को सेट नहीं किया जाता है, तो शर्तों के सही न होने के मामले में, नतीजे के तौर पर NULL दिखाया जाता है.

CASE स्टेटमेंट सभी WHEN क्लॉज़ का क्रम से आकलन करता है और जिस क्लॉज़ की शर्त सबसे पहले सही मिलती है उसके आधार पर नतीजा दिखाता है. इसके बाद, बाकी बचे हुए WHEN क्लॉज़ और ELSE क्लॉज़ का आकलन नहीं किया जाता. अगर WHEN क्लॉज़ की सभी शर्तें गलत या NULL होती हैं, तो CASE स्टेटमेंट, नतीजे के तौर पर ELSE क्लॉज़ की वैल्यू दिखाता है. वहीं, ELSE क्लॉज़ के न होने पर, NULL दिखाया जाता है.

उदाहरण

गड़बड़ी की जांच करना

CASE WHEN Medium != "cpc" THEN "free" ELSE "paid" END
हमारा सुझाव है कि आसान मामलों में, IF फ़ंक्शन का इस्तेमाल करें.

न्यूमेरिक डाइमेंशन की वैल्यू को अलग-अलग बकेट में बांटना

उदाहरण के लिए, ऑर्डर की रकम के हिसाब से ऑर्डर को "Small", "Medium" या "Large" में बांटा जा सकता है:

    
CASE
    WHEN Amount < 20 THEN "Small"
    WHEN Amount >= 20 and Amount < 100 THEN "Medium"
    WHEN Amount >= 100 THEN "Large"
END
अगर डाइमेंशन वैल्यू के लिए ऐड-हॉक ग्रुप बनाने हैं, तो ग्रुप कैलकुलेटेड फ़ील्ड का इस्तेमाल किया जा सकता है.

लॉजिकल AND शर्त का आकलन करना

CASE 
    WHEN Country ISO Code = "US" AND Medium = "cpc" 
    THEN "US - Paid" 
    ELSE "other" 
END

लॉजिकल AND/OR शर्त का आकलन करना

CASE 
    WHEN REGEXP_MATCH(Video Title, ".*Google Analytics*")
    AND is_livestream = TRUE 
    OR Video Length > 600 
    THEN "GA Livestream or long video" 
END

नतीजे के तौर पर, पैरामीटर की वैल्यू के हिसाब से कोई अन्य फ़ील्ड या अन्य वैल्यू दिखाना

पहला उदाहरण: इसमें चुनी गई पैरामीटर वैल्यू के लिए किसी डाइमेंशन को नतीजे के तौर पर दिखाया गया है. इस तकनीक की मदद से, उस ब्रेकडाउन डाइमेंशन को बदला जा सकता है जिसे उपयोगकर्ताओं के चार्ट में इस्तेमाल किया गया है.

CASE 
    WHEN Breakdown = "Product Category" THEN Product Category 
    WHEN Breakdown = "Store" THEN Store 
END

ध्यान दें कि इसे आसान CASE सिंटैक्स का इस्तेमाल करके भी लिखा जा सकता है:

CASE Breakdown 
    WHEN "Product Category" THEN Product Category
    WHEN "Store" THEN Store
END

उदाहरण 2: इसमें पैरामीटर वैल्यू के आधार पर एक अलग मेट्रिक को दिखाया गया है.

CASE WHEN Show Adjusted Cost = TRUE THEN Cost + Adjustments ELSE Cost END

नेस्ट किए गए CASE स्टेटमेंट

ज़्यादा कॉम्प्लेक्स ब्रांचिंग लॉजिक बनाने के लिए, CASE स्टेटमेंट को नेस्ट किया जा सकता है:

CASE WHEN REGEXP_CONTAINS(SKU, "Hats") THEN
    CASE WHEN Color = "blue"
        THEN "BLUE HAT" ELSE "JUST A HAT"
    END
    ELSE "NOT A HAT"
END

क्या यह उपयोगी था?

हम उसे किस तरह बेहतर बना सकते हैं?

और मदद चाहिए?

आगे दिए गए कदमों को आज़माएं:

true
Looker Studio में क्या नया है

नई सुविधाओं और हाल में हुए बदलावों के बारे में जानें. Looker Studio प्रॉडक्ट की जानकारी, Google Cloud पर लाइव है.

खोजें
खोज हटाएं
खोज बंद करें
मुख्य मेन्यू
252423950160601462
true
खोज मदद केंद्र
true
true
true
true
true
102097
false
false