जवाबों:
coalesce
ओरेकल और एसक्यूएल सर्वर दोनों में समर्थित है और अनिवार्य रूप से एक ही कार्य करता है nvl
और isnull
। (कुछ महत्वपूर्ण अंतर हैं, coalesce
एक मनमानी संख्या ले सकते हैं, और पहला गैर-शून्य रिटर्न देता है। रिटर्न का प्रकार isnull
पहले तर्क के प्रकार से मेल खाता है, जो coalesce
कम से कम SQL सर्वर पर सही नहीं है ।)
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"
:।
इसके बजाय ISNULL()
, उपयोग करें NVL()
।
T-SQL:
SELECT ISNULL(SomeNullableField, 'If null, this value') FROM SomeTable
PL / SQL:
SELECT NVL(SomeNullableField, 'If null, this value') FROM SomeTable
NVL2
नीचे दिए गए उपयोग के रूप में भी अगर आप अन्य मूल्य से लौटना चाहते हैं field_to_check
:
NVL2( field_to_check, value_if_NOT_null, value_if_null )
उपयोग: ORACLE / PLSQL: NVL2 समारोह
आप शर्त का उपयोग कर सकते हैं if x is not null then...
। यह एक समारोह नहीं है। यहां NVL()
फ़ंक्शन भी है , यहां उपयोग का एक अच्छा उदाहरण है: एनवीएल फ़ंक्शन रेफरी ।
COALESCE
ANSI, पोस्टग्रैस, MySQL द्वारा समर्थित है ... केवल चेतावनी यह है कि यह मूल सिंटैक्स के रूप में तेजी से प्रदर्शन नहीं करता है।