यह SQL ट्यूटोरियल Oracle में NULLIF फ़ंक्शन के लिए स्पष्टीकरण, उदाहरण प्रदान करता है
NULLIF फ़ंक्शन बहुत उपयोगी फ़ंक्शन है। यह दो मानों की तुलना करता है और यदि मान समान हैं, तो शून्य लौटाता है, अन्यथा पहला मान लौटाता है
expr1 :यह स्रोत मान या अभिव्यक्ति है जिसकी तुलना expr2 से की जाएगी
expr2 :यह स्रोत मूल्य भी है जिसकी तुलना expr1 से की जाती है
आप पहले मान के लिए शाब्दिक NULL निर्दिष्ट नहीं कर सकते हैं
SQL> select nullif(NULL,1) from dual;
select nullif(NULL,1) from dual
*
ERROR at line 1:
ORA-00932: inconsistent datatypes: expected - got CHAR
उपयोग और उदाहरण
SQL> select nullif(1,1) from dual; NULLIF(1,1)
----------- SQL> select nullif(1,2) from dual; NULLIF(1,2)
-----------
1
महत्वपूर्ण नोट
1) यह कथन केस स्टेटमेंट के समान है और यह
केस के बराबर है जब expr1=expr2 फिर NULL ELSE expr1 END
2) यदि दोनों तर्क संख्यात्मक डेटाटाइप हैं, तो Oracle डेटाबेस उच्च संख्यात्मक पूर्वता के साथ तर्क को निर्धारित करता है, अन्य तर्क को उस डेटाटाइप में परोक्ष रूप से परिवर्तित करता है, और उस डेटाटाइप को वापस करता है। यदि तर्क संख्यात्मक नहीं हैं, तो वे एक ही ऑरैकल डेटाटाइप के होने चाहिए, या ओरेकल एक त्रुटि देता है।
SQL> select nullif(1,'apple') from dual;
select nullif(1,'apple') from dual
*
ERROR at line 1:
ORA-00932: inconsistent datatypes: expected NUMBER got CHARSQL> select nullif('apple',1) from dual;
select nullif('apple',1) from dual
*
ERROR at line 1:
ORA-00932: inconsistent datatypes: expected CHAR got NUMBER
अधिक उदाहरण
select first_name, length(first_name),last_name, length(last_name), nullif(length(first_name),length(last_name)) from emp; SELECT NULLIF('Sunday', 'Friday') AS check FROM dual;
NULLIF फ़ंक्शन का एक अन्य उपयोग मामला होगा यदि आप उन कर्मचारियों को सूचीबद्ध करना चाहते हैं जिन्होंने नौकरी बदलने के बाद से नौकरी बदल दी है, जैसा कि जॉब_इतिहास तालिका में जॉब_इतिहास द्वारा दर्शाया गया है जो कर्मचारी तालिका में वर्तमान जॉब_आईडी से अलग है
select emp_name,nullif(b.job_id,a.job_id) old_job from employees a, job_history b where a.emp_id=b.emp_id;
नलिफ़ फ़ंक्शन के लिए अक्सर पूछे जाने वाले प्रश्न
NULLIF फंक्शन की मदद से डिवाइड बाय जीरो एरर से कैसे बचें
यदि भाग में हर शून्य है, तो हमें शून्य त्रुटि से भाग मिलता है। हम नीचे दिए गए NULLIF फ़ंक्शन का उपयोग करके बच सकते हैं
दोहरी से 100/nullif(0,0) का चयन करें;
अब यहां चूंकि दोनों मान बराबर हैं, Nullif शून्य वापस आ जाएगा और इसके बजाय पूरी अभिव्यक्ति शून्य हो जाएगी किसी त्रुटि का। यहां बताया गया है कि आप वास्तविक कॉलम के साथ काम करते समय कैसे उपयोग कर सकते हैं
क्स्प से col2/nullif(col1,0) चुनें;
संबंधित लेख
Oracle में अद्यतन विवरण
Oracle में NVL2 फ़ंक्शन
Oracle में NVL फ़ंक्शन
Oracle में Coalesce फ़ंक्शन
sql में एकल पंक्ति फ़ंक्शन
Oracle में तालिका विवरण से हटाएं
बाहरी संसाधन
NULLIF के लिए Oracle संदर्भ