SQL सर्वर के IsNull () फ़ंक्शन के Oracle समकक्ष क्या है?


110

SQL सर्वर में हम यह IsNull()निर्धारित करने के लिए टाइप कर सकते हैं कि कोई फील्ड अशक्त है या नहीं। क्या पीएल / एसक्यूएल में एक समान कार्य है?

जवाबों:


131

coalesceओरेकल और एसक्यूएल सर्वर दोनों में समर्थित है और अनिवार्य रूप से एक ही कार्य करता है nvlऔर isnull। (कुछ महत्वपूर्ण अंतर हैं, coalesceएक मनमानी संख्या ले सकते हैं, और पहला गैर-शून्य रिटर्न देता है। रिटर्न का प्रकार isnullपहले तर्क के प्रकार से मेल खाता है, जो coalesceकम से कम SQL सर्वर पर सही नहीं है ।)


9
+1: COALESCEANSI, पोस्टग्रैस, MySQL द्वारा समर्थित है ... केवल चेतावनी यह है कि यह मूल सिंटैक्स के रूप में तेजी से प्रदर्शन नहीं करता है।
OMG पोंजी

17
+1 COALESCE, जिसके लिए एक महत्वपूर्ण लाभ है NVL: यह शॉर्टकट मूल्यांकन करता है, जबकि NVLहमेशा दोनों मापदंडों का मूल्यांकन करता है। तुलना COALESCE(1,my_expensive_function)के साथ NVL(1,my_expensive_function)
जेफरी केम्प

यह COALESE()फ़ंक्शन बहुत अच्छा है और आप इसके बारे में MSDOC> COALESCE पर पढ़ सकते हैं - यह Oracle पर एक ही वाक्य रचना काम करता है। यदि आपके डेटा में NULLS के बजाय खाली तार हैं तो आपको कुछ इस तरह की आवश्यकता हो सकती है COALESCE(TRIM(Tbl.myField1), TRIM(Tbl.myField2)) AS "myNewField":।
SherlockSpreadsheets

108

इसके बजाय ISNULL(), उपयोग करें NVL()

T-SQL:

SELECT ISNULL(SomeNullableField, 'If null, this value') FROM SomeTable

PL / SQL:

SELECT NVL(SomeNullableField, 'If null, this value') FROM SomeTable

2
प्रश्न का उत्तर स्पष्ट रूप से दें।
गैरी हुकाबोन

31

NVL2नीचे दिए गए उपयोग के रूप में भी अगर आप अन्य मूल्य से लौटना चाहते हैं field_to_check:

NVL2( field_to_check, value_if_NOT_null, value_if_null )

उपयोग: ORACLE / PLSQL: NVL2 समारोह


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.