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

जहां क्लॉज . में कुल कार्यों की अनुमति क्यों नहीं है?

जिस कारण से आप SUM() का उपयोग नहीं कर सकते हैं WHERE . में खंड खंड के मूल्यांकन का क्रम है।

FROM आपको बताता है कि पंक्तियों को कहां से पढ़ना है। जैसे ही पंक्तियों को डिस्क से मेमोरी में पढ़ा जाता है, उन्हें WHERE . के लिए चेक किया जाता है स्थितियाँ। (वास्तव में कई मामलों में पंक्तियाँ विफल हो जाती हैं WHERE खंड डिस्क से भी नहीं पढ़ा जाएगा। "शर्तों" को औपचारिक रूप से विधेय . के रूप में जाना जाता है और कुछ विधेय का उपयोग किया जाता है - क्वेरी निष्पादन इंजन द्वारा - यह तय करने के लिए कि कौन सी पंक्तियाँ बेस टेबल से पढ़ी जाती हैं। इन्हें पहुंच कहा जाता है विधेय।) जैसा कि आप देख सकते हैं, WHERE खंड प्रत्येक पंक्ति पर लागू होता है क्योंकि यह इंजन को प्रस्तुत किया जाता है।

दूसरी ओर, सभी पंक्तियों (जो सभी विधेय को सत्यापित करती हैं) को पढ़ने के बाद ही एकत्रीकरण किया जाता है।

इस बारे में सोचें:SUM() केवल उन पंक्तियों पर लागू होता है जो WHERE . को संतुष्ट करती हैं स्थितियाँ। अगर आप SUM() डालते हैं WHERE . में खंड, आप परिपत्र तर्क के लिए पूछ रहे हैं। क्या कोई नई पंक्ति WHERE . से गुजरती है खंड? मुझे कैसे पता चलेगा? अगर यह पास हो जाएगा, तो मुझे इसे SUM . में शामिल करना होगा , लेकिन यदि नहीं, तो इसे SUM . में शामिल नहीं किया जाना चाहिए . तो मैं SUM . का मूल्यांकन भी कैसे करूं? हालत?



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle डेटाबेस में सभी ट्रिगर सूचीबद्ध करें

  2. JSON_ARRAY () Oracle में फ़ंक्शन

  3. Oracle में SYSDATE फ़ंक्शन

  4. Oracle में संयोजित तार उत्पन्न करने का तेज़ तरीका

  5. Oracle D2k फॉर्म 6i . में एक फॉर्म स्क्रीन को रिफ्रेश / अपडेट करना