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

एकाधिक तालिकाओं में शामिल होने से NULL मान लौटाता है

ऐसा इसलिए है क्योंकि null जोड़ के दोनों ओर ऑपरेटर null . का परिणाम देगा . आप ISNULL(LiabilityPremium, 0) . का उपयोग कर सकते हैं उदाहरण:

ISNULL(l.LiabilityPremium,0) + ISNULL(h.LiabilityPremium,0) as LiabilityPremium

या आप COALESCE . का उपयोग कर सकते हैं ISNULL . के बजाय ।

COALESCE(l.LiabilityPremium,0) + COALESCE(h.LiabilityPremium,0) as LiabilityPremium

संपादित करें

मुझे यकीन नहीं है कि यह इस छोटे डेटा सेट के साथ संयोग है या अपेक्षित है लेकिन अगर हमेशा यह अपेक्षा की जाती है कि या तो @LiabilityPremium.LiabilityPremium या @HiredPremium.LiabilityPremium हमेशा शून्य रहेगा तो अतिरिक्त प्रदर्शन करने की कोई आवश्यकता नहीं है। इसके बजाय COALESCE . का उपयोग करें सीधे उन 2 कॉलम पर।

COALESCE(l.LiabilityPremium, h.LiabilityPremium) as LiabilityPremium


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Salesforce के साथ SQL सर्वर का उपयोग करने के लिए युक्तियाँ

  2. SQL सर्वर:पूल किए गए कनेक्शन में अलगाव स्तर लीक

  3. SQL सर्वर:क्या एक ही समय में दो तालिकाओं में सम्मिलित करना संभव है?

  4. SQL सर्वर - सभी गैर-मुद्रण योग्य ASCII वर्णों को हटा दें

  5. SQL सर्वर sp_msforeachtable उपयोग केवल उन तालिकाओं का चयन करने के लिए जो कुछ शर्तों को पूरा करती हैं