मेरे पास एक Microsoft SQL Server 2008 क्वेरी है जो बाएं बाहरी जुड़ने का उपयोग करके तीन तालिकाओं से डेटा लौटाती है। कई बार, दूसरी और तीसरी तालिकाओं में कोई डेटा नहीं होता है और इसलिए मुझे एक शून्य मिलती है जो मुझे लगता है कि बाएं बाहरी जुड़ने के लिए डिफ़ॉल्ट है। क्या चयनित कथन में डिफ़ॉल्ट मानों को प्रतिस्थापित करने का कोई तरीका है? मेरे पास एक वर्कअराउंड है जिसमें मैं टेबल वैरिएबल में चयन कर सकता हूं लेकिन यह थोड़ा गंदा लगता है।बाएं बाहरी से लौटाए गए डिफ़ॉल्ट शून्य मानों को बदलें
SELECT iar.Description, iai.Quantity, iai.Quantity * rpl.RegularPrice as 'Retail',
iar.Compliance FROM InventoryAdjustmentReason iar
LEFT OUTER JOIN InventoryAdjustmentItem iai on (iar.Id = iai.InventoryAdjustmentReasonId)
LEFT OUTER JOIN Item i on (i.Id = iai.ItemId)
LEFT OUTER JOIN ReportPriceLookup rpl on (rpl.SkuNumber = i.SkuNo)
WHERE iar.StoreUse = 'yes'
मैं मात्रा और नियमित प्लस को संभवतः शून्य पर डिफ़ॉल्ट रूप से डिफ़ॉल्ट करना चाहता हूं।
मुझे पता था कि इसे आसान होना था, लेकिन किसी कारण से, मुझे इसे कैसे करना है, इस पर अवरुद्ध किया गया था। धन्यवाद। –
यदि यह MySQL है, तो IsNull को 'IFNULL' से बदला जाना चाहिए। धन्यवाद। – Dhanushka
PostgreSQL में, ऐसा लगता है ["COALESCE"] (http://www.postgresql.org/docs/9.3/static/functions-conditional.html)। MySQL के लिए, मैन्युअल पृष्ठ यहां है: ["IFNULL"] (http://dev.mysql.com/doc/refman/5.7/en/control-flow-functions.html)। मानक के बारे में निश्चित नहीं है। –