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

ऑरैकल में चुनिंदा स्टेटमेंट में सबक्वायरी कैसे काम करती है?

यह आसान है-

SELECT empname,
       empid,
       (SELECT COUNT (profileid)
          FROM profile
         WHERE profile.empid = employee.empid)
           AS number_of_profiles
  FROM employee;

जब आप टेबल जॉइन का उपयोग इस तरह करते हैं तो यह और भी आसान हो जाता है:

  SELECT e.empname, e.empid, COUNT (p.profileid) AS number_of_profiles
    FROM employee e LEFT JOIN profile p ON e.empid = p.empid
GROUP BY e.empname, e.empid;

सबक्वायरी के लिए स्पष्टीकरण:

अनिवार्य रूप से, select . में एक सबक्वेरी एक अदिश मान प्राप्त करता है और इसे मुख्य क्वेरी में भेजता है। select . में एक सबक्वेरी एक से अधिक पंक्ति और एक से अधिक कॉलम पास करने की अनुमति नहीं है, जो एक प्रतिबंध है। यहां, हम एक count पास कर रहे हैं मुख्य प्रश्न के लिए, जैसा कि हम जानते हैं, हमेशा केवल एक संख्या होगी- एक अदिश मान। यदि कोई मान नहीं मिलता है, तो सबक्वेरी null लौटाती है मुख्य क्वेरी के लिए। इसके अलावा, एक सबक्वेरी from . से कॉलम तक पहुंच सकती है मुख्य प्रश्न का खंड, जैसा कि मेरी क्वेरी में दिखाया गया है जहां employee.empid बाहरी क्वेरी से आंतरिक क्वेरी में भेजा जाता है।

संपादित करें :

जब आप select . में सबक्वायरी का उपयोग करते हैं क्लॉज, ओरेकल अनिवार्य रूप से इसे लेफ्ट जॉइन के रूप में मानता है (आप इसे अपनी क्वेरी के लिए व्याख्या योजना में देख सकते हैं), पंक्तियों की कार्डिनैलिटी बाईं ओर हर पंक्ति के लिए दाईं ओर सिर्फ एक है।

बाएं शामिल होने का स्पष्टीकरण

लेफ्ट जॉइन बहुत आसान है, खासकर जब आप select . को बदलना चाहते हैं इसके प्रतिबंधों के कारण सबक्वायरी। LEFT JOIN के दोनों ओर तालिकाओं की पंक्तियों की संख्या पर यहां कोई प्रतिबंध नहीं है कीवर्ड।

अधिक जानकारी के लिए ओरेकल डॉक्स को सबक्वायरी पर पढ़ें और लेफ्ट जॉइन या लेफ्ट आउटर जॉइन करें।



  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. लिनक्स में SQL * PLUS क्लाइंट कैसे स्थापित करें

  3. क्लॉज और सबक्वायरी के बीच अंतर?

  4. Oracle में निर्देशिका कैसे बनाएं?

  5. oracle 10g में समय-समय पर दिनांक कैसे बदलें?