2011-04-01 9 views
5

मैं एक ऐसा चयन लिखना चाहता हूं जहां फ़ील्ड शून्य होने के अलावा मैं सामान्य रूप से फ़ील्ड का मान दिखाऊं। यदि यह शून्य है तो मैं एक विशेष पाठ दिखाना चाहता हूं, उदाहरण के लिए "फ़ील्ड शून्य है"। मैं यह कैसे करूँगा?ओरेकल: फ़ील्ड शून्य होने पर विशेष टेक्स्ट दिखाएं

// Oracle newbie 

उत्तर

11

मैं इस उद्देश्य के लिए समारोह COALESCE का उपयोग करना चाहते: http://www.techonthenet.com/oracle/functions/nvl.php

+2

+1 क्योंकि 'COALESCE()' mysql और अन्य SQL सर्वर के लिए भी काम करता है, न केवल ओरेकल। – ZeissS

4

बस आपकी क्वेरी

का चयन करें NVL (SOMENULLABLEFIELD, 'फ़ील्ड रिक्त है') SOMENULLABLEFIELD MyTable से में NVL PL/SQL समारोह डालने;

अधिक यहाँ विस्तार:

select value, decode(value, NULL, 'SPECIAL', value) from 
    (select NULL value from dual 
    union all 
    select 2 value from dual 
) 
+1

एकल उद्धरण होना चाहिए कि स्ट्रिंग शाब्दिक –

+0

+1 यह वास्तव में क्या NVL के लिए है के लिए डबल कोट्स नहीं। – Tony

3

तुम भी डीकोड इस्तेमाल कर सकते हैं। यह दिए गए तर्कों से पहला गैर-शून्य मान देता है (ताकि आप एक समय में एक से अधिक फ़ील्ड का परीक्षण कर सकें)।

SELECT COALESCE(NULL, 'Special text') FROM DUAL 

तो यह भी काम करेगा:

SELECT COALESCE(
    First_Nullable_Field, 
    Second_Nullable_Field, 
    Third_Nullable_Field, 
    'All fields are NULL' 
) FROM YourTable 
+0

ठीक है, अगर हम एक साधारण समस्या के लिए अनावश्यक शब्दकोष समाधान का सुझाव देने जा रहे हैं ... कैसे मामला है जब मेरा रंगमंच नल है 'यह' शून्य है, बच्चा 'ईएलएसई mycolumn अंत' –

+0

प्वाइंट लिया - एनवीएल/कोलासेज डेकोडे से वास्तव में बहुत साफ और छोटा। –

+0

+1, भले ही यह सवाल का सबसे सुंदर समाधान नहीं है, फिर भी मुझे मदद मिली जब मुझे शून्य के लिए एक पाठ और शून्य के लिए एक अलग पाठ दिखाने की आवश्यकता है। – Tony

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