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

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

Oracle डाटाबेस में, NULLIF() फ़ंक्शन दो अभिव्यक्तियों की तुलना करता है, और देता है null यदि दोनों भाव समान हैं। अगर वे बराबर नहीं हैं, तो फ़ंक्शन पहली अभिव्यक्ति देता है।

सिंटैक्स

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

NULLIF(expr1, expr2)

उदाहरण

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

SELECT NULLIF(5, 7)
FROM DUAL;

परिणाम:

5

इस मामले में, तर्क समान नहीं थे, और इसलिए फ़ंक्शन ने पहला तर्क लौटा दिया।

यहाँ क्या होता है जब दोनों तर्क समान होते हैं:

SET NULL 'null';
SELECT NULLIF(7, 7)
FROM DUAL;

परिणाम:

null

हम देख सकते हैं कि NULLIF() रिटर्न null जब दोनों तर्क बराबर हों

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

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

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

CASE की तुलना में

NULLIF() फ़ंक्शन निम्न CASE के बराबर है अभिव्यक्ति:

CASE WHEN expr1 = expr2 THEN NULL ELSE expr1 END

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

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

SELECT NULLIF()
FROM DUAL;

परिणाम:

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

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

SELECT NULLIF(1, 2, 3)
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. बाहरी तालिका का स्थान और फ़ाइल नाम प्राप्त करना?

  2. ओपन वर्ल्ड 2013 से वापस

  3. Oracle में प्राथमिक डेटाबेस के साथ स्टैंडबाय को सिंक करने के चरण

  4. Oracle इन-मेमोरी कॉस्ट

  5. बाइट लंबाई के आधार पर UTF8 स्ट्रिंग को छोटा करने का सबसे अच्छा तरीका