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"