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

Oracle, Rownum से कनेक्ट करें

क्रोकोडिल्को के उत्तर में स्पष्टीकरण बस गलत है। आप "सही उत्तर" चिह्न और कई अपवोट की अवहेलना कर सकते हैं, यह अभी भी गलत है। यह दिलचस्प है कि उन्होंने एक अभ्यास के रूप में छोड़ दिया ठीक वही मामला जो साबित करता है कि स्पष्टीकरण गलत है।

CONNECT BY क्वेरी काम नहीं करती "जैसे कि" नई टेबल (या SELECT . के नए आउटपुट रोसेट बयान, वैसे भी) प्रत्येक चरण में उत्पन्न होते हैं। तर्क में यही गलती है।

बल्कि, केवल एक . है रोसेट समग्र रूप से उत्पन्न हुआ (सभी चरणों में)। यह सच है कि पिछले चरण में उत्पन्न पंक्तियों के आधार पर नई पंक्तियाँ जोड़ी जाती हैं; लेकिन रोसेट अपने आप में एक है, और बढ़ रहा है, अलग रोसेट नहीं।

यह ROWNUM . के संबंध में विशेष रूप से प्रासंगिक है . ROWNUM 1 से शुरू होने वाले एकल "परिणाम" रोसेट में पंक्तियों को असाइन किया गया है। CONNECT BY में क्वेरी, केवल एक पंक्ति है, और ROWNUM बढ़ते क्रम में 1 से n तक जाता है।

यदि क्रोकोडिल्को का उत्तर सही होता, तो ROWNUM प्रत्येक चरण में 1 पर पुनः आरंभ होगा। यह स्पष्ट रूप से ऐसा नहीं है:आइए इसे "मानक" श्रेणीबद्ध क्वेरी पर आज़माएं।

select     empno, ename, mgr, level, rownum
from       scott.emp
start with mgr is null
connect by prior empno = mgr
;

     EMPNO ENAME             MGR      LEVEL     ROWNUM
---------- ---------- ---------- ---------- ----------
      7839 KING                           1          1
      7566 JONES            7839          2          2
      7788 SCOTT            7566          3          3
      7876 ADAMS            7788          4          4
      7902 FORD             7566          3          5
      7369 SMITH            7902          4          6
      7698 BLAKE            7839          2          7
      7499 ALLEN            7698          3          8
      7521 WARD             7698          3          9
      7654 MARTIN           7698          3         10
      7844 TURNER           7698          3         11
      7900 JAMES            7698          3         12
      7782 CLARK            7839          2         13
      7934 MILLER           7782          3         14



  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 - DBMS_MVIEW.REFRESH के साथ 'मांग पर ताज़ा बल' दृश्य को ताज़ा करते समय क्या होता है

  2. मैं डिफ़ॉल्ट Oracle के HR स्कीमा के लिए SQL कहाँ से प्राप्त कर सकता हूँ?

  3. स्केलग्रिड प्रबंधित डेटाबेस होस्टिंग के लिए Oracle क्लाउड जोड़ता है

  4. ORA-28860:UTL_HTTP का उपयोग करते समय घातक SSL त्रुटि?

  5. EBS R12 घटक संस्करण कैसे खोजें