2010-08-19 13 views

उत्तर

107

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

+9

+1: 'COALESCE' एएनएसआई है, जो पोस्टग्रेज़, MySQL द्वारा समर्थित है ... केवल चेतावनी यह है कि यह आवश्यक रूप से मूल वाक्यविन्यास के रूप में तेज़ प्रदर्शन नहीं करता है। 'COALESCE' के लिए –

+17

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

6

आप if x is not null then... की स्थिति का उपयोग कर सकते हैं। यह एक समारोह नहीं है। NVL() फ़ंक्शन भी है, यहां उपयोग का एक अच्छा उदाहरण है: NVL function ref

88

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

स्पष्ट रूप से सवाल जवाब। –

20

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

NVL2(field_to_check, value_if_NOT_null, value_if_null) 

उपयोग: ORACLE/PLSQL: NVL2 FUNCTION

संबंधित मुद्दे