8

क्या कोई मुझे इनफॉर्मैटिका पावर सेंटर डिज़ाइनर में केस स्टेटमेंट लिखने में मदद कर सकता है? मैं इंफॉर्मेटिका के लिए बिल्कुल नया हूं, और मेरे सीमित अनुभव के आधार पर मुझे लगता है कि केस स्टेटमेंट समर्थित नहीं हैं। समान कार्यक्षमता वाला एक डिकोड फ़ंक्शन है, लेकिन मैं वाक्यविन्यास पर कोई अच्छा उदाहरण नहीं ढूंढ पा रहा हूं।इनफॉर्मेटिका में केस स्टेटमेंट्स/डिकोड फ़ंक्शन

अगर कोई मुझे इनफॉर्मेटिका में केस स्टेटमेंट/डिकोड फ़ंक्शन का उपयोग करने के बारे में कुछ विशिष्ट उदाहरण दे सकता है तो मैं वास्तव में सराहना करता हूं।

आपकी मदद के लिए बहुत बहुत धन्यवाद!

उत्तर

15

आप सही हैं - कोई CASE बयान है, लेकिन आप DECODE उपयोग कर सकते हैं यह अनुकरण करने के लिए:

CASE 
    WHEN DECIMAL_PORT > 0 THEN 'positive value' 
    WHEN DECIMAL_PORT < 0 THEN 'negative value' 
    ELSE 'zero' 
END 
:

DECODE(TRUE 
     , DECIMAL_PORT > 0, 'positive value' 
     , DECIMAL_PORT < 0, 'negative value' 
         , 'zero') 

यह निम्न Transact SQL CASE बयान के बराबर है

यहां बताया गया है कि यह कैसे काम करता है:

  • पहला पैरामीटर हार्ड कोड है घ TRUE मूल्य,
  • भी मानकों (, 2, 4 और इसी तरह) स्थिति हैं,
  • अजीब मानकों (3, 5 वीं और इसी तरह) वापसी को महत्व देता हैं,
  • पिछले पैरामीटर है डिफ़ॉल्ट वापसी मूल्य,
  • पहली स्थिति जो पहले पैरामीटर के मान का मूल्यांकन करती है (यानी पहली शर्त जो सत्य है) लौटाई गई मान निर्धारित करती है,
  • यदि कोई भी स्थिति पूरी नहीं होती है तो अंतिम पैरामीटर लौटाया जाता है। भी IIF() फ़ंक्शन जो अक्सर सशर्त तर्क लागू करने के लिए प्रयोग किया जाता है पर
3

देखो:

IIF(DECIMAL_PORT > 0, 'positive value', IIF(DECIMAL_PORT < 0 ,'negative value', 'zero')) 
+2

यह काम करेगा लेकिन यह भी जल्दी से गंदा हो जाएगा के रूप में की स्थिति की संख्या बढ़ती है। 'DECODE' अधिक पठनीय अभिव्यक्ति लिखने की अनुमति देता है। –

संबंधित मुद्दे