Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

Oracle में NVL2 () फ़ंक्शन

Oracle डाटाबेस में, NVL2() फ़ंक्शन हमें शून्य मानों को दूसरे मान से बदलने की अनुमति देता है।

यह NVL() के समान है फ़ंक्शन, सिवाय इसके कि यह दो के बजाय तीन तर्कों को स्वीकार करता है। यह हमें उस स्थिति में लौटने के लिए एक अलग मान निर्दिष्ट करने की अनुमति देता है जब पहला तर्क शून्य नहीं होता है।

सिंटैक्स

वाक्य रचना इस प्रकार है:

NVL2(expr1, expr2, expr3)

अगर expr1 शून्य नहीं है, तो NVL2 रिटर्न expr2 . अगर expr1 शून्य है, तो NVL2 रिटर्न expr3

उदाहरण

प्रदर्शित करने के लिए यहां एक उदाहरण दिया गया है:

SELECT NVL2(null, 2, 3)
FROM DUAL;

परिणाम:

3

पहला तर्क शून्य था और इसलिए तीसरा तर्क वापस कर दिया गया।

और यहाँ क्या होता है जब पहला तर्क शून्य नहीं होता है:

SELECT NVL2(1, 2, 3)
FROM DUAL;

परिणाम:

2

जब प्रतिस्थापन मान शून्य हो

यदि दूसरा या तीसरा तर्क शून्य है, तो आप एक शून्य परिणाम के साथ समाप्त हो सकते हैं।

उदाहरण:

SET NULL '(null)';
SELECT 
    NVL2(1, null, 3) AS "r1",
    NVL2(null, 2, null) AS "r2"
FROM DUAL;

परिणाम:

       r1        r2 
_________ _________ 
   (null)    (null)

पहली पंक्ति के संबंध में SET NULL '(null)'; , मैंने इस लाइन को जोड़ा ताकि जब भी परिणाम शून्य हो तो मेरा SQLcl सत्र उस मान को वापस कर दे।

डिफ़ॉल्ट रूप से, SQLcl और SQL*Plus जब भी null . खाली स्थान लौटाते हैं SQL SELECT . के परिणामस्वरूप होता है बयान।

हालांकि, आप SET NULL . का उपयोग कर सकते हैं लौटाए जाने के लिए एक अलग स्ट्रिंग निर्दिष्ट करने के लिए (जैसे मैंने यहां किया है)।

अवैध तर्क गणना

कोई तर्क पारित किए बिना फ़ंक्शन को कॉल करने से त्रुटि होती है:

SELECT NVL2()
FROM DUAL;

परिणाम:

SQL Error: ORA-00909: invalid number of arguments
00909. 00000 -  "invalid number of arguments"

और बहुत अधिक तर्क पारित करने से भी त्रुटि होती है:

SELECT NVL2(1, 2, 3, 4)
FROM DUAL;

परिणाम:

SQL Error: ORA-00909: invalid number of arguments
00909. 00000 -  "invalid number of arguments"

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. AUTONOMOUS_TRANSACTION

  2. Oracle में नियंत्रण फिर से शुरू करने के लिए लूप्स में CONTINUE का उपयोग करना

  3. त्रुटि ठीक करें "ORA-01789:क्वेरी ब्लॉक में परिणाम कॉलम की संख्या गलत है"

  4. Oracle केस शॉर्ट-सर्किट समूह द्वारा काम नहीं कर रहा है

  5. BadImageFormatException। यह तब होगा जब 64 बिट मोड में 32 बिट Oracle क्लाइंट स्थापित घटकों के साथ चल रहा हो