PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

कोई रिकॉर्ड नहीं मिलने पर शून्य लौटाएं

आप कर सकते हैं:

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() . के बारे में अधिक जानकारी मैनुअल में।
मैनुअल में समग्र कार्यों के बारे में अधिक जानकारी।
अधिक विकल्प इस बाद की पोस्ट में:

  • यदि कोई मान नहीं मिलता है तो किसी फ़ंक्शन से कोई मान कैसे लौटाएं


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. क्या कई-से-अनेक संघों के लिए तालिका में शामिल होने के लिए कोई विकल्प हैं?

  2. जेपीए के साथ पोस्टग्रेज JSONB डेटाटाइप का उपयोग कैसे करें?

  3. जावा क्रॉसस्टैब - तैयार बयान क्वेरी

  4. अल्पविराम से अलग किए गए कॉलम डेटा को अतिरिक्त कॉलम में विभाजित करें

  5. PostgreSQL में एक अस्थायी फ़ंक्शन कैसे बनाएं?