दिलचस्प पोस्ट
कैसे कंसोल अनुप्रयोग में प्रमुख प्रेस घटना को संभालने के लिए विशिष्ट स्थान के साथ sqlite3 में पाठ को कैसे सॉर्ट करना है? क्या सफारी के लिए सीएसएस हैक केवल क्रोम नहीं है? जीसी ओवरहेड सीमा पार हो गई बनाएँफ़ाइल: कच्चे डिस्क पर प्रत्यक्ष लिखने का संचालन "प्रवेश निषेध है" – विस्टा, विन 7 Emacs को क्षैतिज से विभाजित करना मल्टी सेगमेंट क्यूबिक बेजियर वक्र और एक दूरी के साथ-साथ वक्रता संधि के साथ डेटा का अनुमान अपाचे के प्रवेश लॉग को समझना ASP.NET MVC में वर्तमान दृश्य नाम पुनर्प्राप्त करें? निर्बाध इंटरफेस – विधि चेनिंग सूत्रों के बीच संदर्भों को बांटने में लाइफटाइम परेशानियां जावास्क्रिप्ट फाइलों के लिए पैरामीटर पास करना SQL सर्वर पर स्ट्रिंग के लिए varbinary PHP का उपयोग कर वेब रूट के बाहर दस्तावेज़ों को कैसे प्रदान करें? एसक्यूएल में प्रति समूह का अंतिम रिकॉर्ड कैसे प्राप्त करें I

ओरेकल: `(+) 'एक WHERE खंड में क्या होता है?

Oracle- आधारित अनुप्रयोग में निम्नलिखित पाया गया है कि हम माइग्रेट कर रहे हैं (सामान्यीकृत) :

SELECT Table1.Category1, Table1.Category2, count(*) as Total, count(Tab2.Stat) AS Stat FROM Table1, Table2 WHERE (Table1.PrimaryKey = Table2.ForeignKey(+)) GROUP BY Table1.Category1, Table1.Category2 

क्या (+) एक WHERE खंड में क्या होता है? मैंने कभी ऐसा कभी नहीं देखा है जैसे कि पहले इस्तेमाल किया

Solutions Collecting From Web of "ओरेकल: `(+) 'एक WHERE खंड में क्या होता है?"

"=" को (+) के किन किन किन पर निर्भर करता है, यह एक ऊपरी या एक ऊपरी हिस्से को जोड़ता है (इस मामले में, यह एक बाएं बाहरी शामिल है)। यह पुराने ओरेकल सिंटैक्स है जिसे कभी-कभी लोगों द्वारा पसंद किया जाता है इसे पहले सीखा, क्योंकि उन्हें पसंद है कि यह उनके कोड को छोटा बनाता है।

यद्यपि इसका उपयोग करने के लिए सर्वश्रेष्ठ नहीं, पठनीयता के लिए

जैसा कि अन्य लोगों ने बताया है, (+) वाक्यविन्यास अप्रचलित, स्वामित्व सिंटैक्स है जो ओरेकल ने कई वर्षों के लिए एक अतिरिक्त परिणाम को पूरा करने के लिए उपयोग किया था। मुझे लगता है कि वे एसक्यूएल -92 मानक वाक्यविन्यास पर फैसला करने से पहले अपना स्वामित्व वाक्यविन्यास अपनाया।

मानक SQL OUTER JOIN वाक्यविन्यास (जो अब सभी प्रमुख RDBMS कार्यान्वयनों द्वारा समर्थित है) का उपयोग करते हुए, आपके द्वारा दिखाया गया समतुल्य प्रश्न निम्न होगा:

 SELECT Table1.Category1, Table1.Category2, COUNT(*) AS Total, COUNT(Table2.Stat) AS Stat FROM Table1 LEFT OUTER JOIN Table2 ON (Table1.PrimaryKey = Table2.ForeignKey) GROUP BY Table1.Category1, Table1.Category2; 

जिसका मतलब है:

  • Table1 से सभी पंक्तियों को क्वेरी परिणाम में शामिल किया गया है।
  • जहां Table1 में पंक्तियां मिलती हैं, उन पंक्तियों को शामिल करें ( Table2 में एकाधिक मेलिंग पंक्तियाँ हैं, तो Table1 से दोहराए जाने वाले)।
  • जहां Table2 में कोई मिलान पंक्तियाँ नहीं हैं, क्वेरी परिणाम में Table2 सभी स्तंभों के लिए NULL उपयोग करें।

यह एक गैर एएनएसआई छोड़ दिया है बाहरी सम्मिलित नोटेशन Oracle9i के साथ शुरू हो रहा है, '(+)' नोटेशन का उपयोग करते हुए भ्रामक बाह्य सम्मिलन वाक्यविन्यास को आईएसओ 99 बाहरी जुड़ने वाक्यविन्यास द्वारा स्थानांतरित कर दिया गया है।