आप कर सकते हैं:
SELECT COALESCE(SUM(columnA), 0) FROM my_table WHERE columnB = 1
INTO res;
यह काम करने के लिए होता है, क्योंकि आपकी क्वेरी का एक समग्र कार्य होता है और परिणामस्वरूप हमेशा एक पंक्ति लौटाता है, भले ही अंतर्निहित तालिका में कुछ भी न मिले।
बिना समुच्चय वाली सामान्य क्वेरी कोई पंक्ति नहीं ऐसी स्थिति में। COALESCE कभी नहीं बुलाया जाएगा और आपको बचा नहीं सका। एक कॉलम से निपटने के दौरान हम इसके बजाय पूरी क्वेरी को लपेट सकते हैं:
SELECT COALESCE( (SELECT columnA FROM my_table WHERE ID = 1), 0)
INTO res;
आपकी मूल क्वेरी के लिए भी काम करता है:
SELECT COALESCE( (SELECT SUM(columnA) FROM my_table WHERE columnB = 1), 0)
INTO res;
COALESCE() . के बारे में अधिक जानकारी मैनुअल में।
मैनुअल में समग्र कार्यों के बारे में अधिक जानकारी।
अधिक विकल्प इस बाद की पोस्ट में:
- यदि कोई मान नहीं मिलता है तो किसी फ़ंक्शन से कोई मान कैसे लौटाएं