2012-03-27 10 views
7

को देखते हुए तालिका:शून्य क्वेरी वाले दो स्तंभों के मान जोड़ने के लिए SQL क्वेरी?

 
    ID ONE TWO 
    X1 15 15 
    X2 10 - 
    X3 -  20 

इस क्वेरी:

SELECT (ONE + TWO) FROM (TABLE) 

बस कम से कम एक स्तंभ के बाद से X1 के मूल्यों लेकिन दूसरों का योग देता है एक अशक्त मूल्य है। अगर मैं शून्य हूं तो भी मैं उन्हें कैसे जोड़ सकता हूं? यानी 0 को शून्य के रूप में मानते हैं?

उत्तर

10
SELECT (COALESCE(ONE, 0) + COALESCE(TWO, 0)) FROM (TABLE) 

COALESCE मापदंडों बाएं से दाएं में पाया पहला गैर-शून्य मान प्रदान करेंगे। तो, जब पहले फ़ील्ड रिक्त है, यह 0.

इस तरह ले जाएगा, X2 में 10 + 0 = 10

1

वहाँ पहले से ही एक अच्छा जवाब है परिणाम होगा, लेकिन मुझे लगता है कि (में यह antonpug के उल्लेख के लायक है मामला वह नहीं जानता) कि ऐसा क्यों हो रहा है यह है कि न्यूल एक ऐसा मूल्य नहीं है जिसे तुलना या सारांशित किया जा सके।

शून्य 0 या '' (खाली स्ट्रिंग) नहीं है, तो शून्य से जुड़े हर आपरेशन शून्य (10 + शून्य = शून्य) परिणाम होगा, यहां तक ​​कि (शून्य = शून्य) गलत

+1

को मैं वाकिफ हूँ का मूल्यांकन करेंगे। धन्यवाद! – antonpug

+1

ओरेकल में, खाली स्ट्रिंग न्यूल है। यह मानक और अन्य आरडीबीएम से अलग है। ओरेकल में 'दो' से 'सत्य' का चयन करें, जहां 'शून्य' सही है और दोहरी से 'सत्य' चुनें, जहां '' '' '' पंक्ति नहीं लौटाती है। इस वजह से, कॉन्सटेनेशन ऑपरेटर '||' केवल दोनों तरफ शून्य हो जाएगा यदि दोनों पक्ष शून्य हैं। 'नल का चयन करें ||' हैलो वर्ल्ड! ' दोहरी 'से स्ट्रिंग "हैलो वर्ल्ड!" देता है। –

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